我有一个表单,它使用Javascript来定义起始值,用于标记目的,以实现与IE、Firefox和Chrome的交叉兼容性。为了正确工作,JS会根据用户输入或未输入的内容更改输入类型。
然后,我进行了PHP表单验证,以确保密码符合必须至少包含一个数字的规定,但每次我提交带有应该验证的密码的表单时,都会出现错误,即我的密码必须包含至少一个数字。
相关表格输入:
<input type="text" name="password" class="reg_pass" value="Password"
onfocus="if (value == 'Password') { value = ''; } setAttribute('type', 'password');"
onblur="if ( value == '') { value='Password'; }
if ( value !== '' && value == 'Password') { setAttribute('type', 'text'); }" />
使用的相关PHP验证:
elseif (!preg_match("/[A-Z][a-z][0-9]+/", $password)) {
$msg = "Password must contain at least one number";
}
注意:
我使用了print_r($_POST),提交后,密码发布变量会显示已输入的密码。
我找了几个小时的解决方案,但都无济于事。
有什么想法吗?
这是否通过了验证?目前,您的regex只接受具有以下特征的密码:第一个字符必须是大写字母,第二个字符必须为小写字母,后面跟着一个或多个数字。
试试类似的东西:
/[A-Za-z0-9]+/
你也可以做:
/[a-z0-9]+/i
i
标志使其不区分大小写。
如果你想让它至少包含一个数字,你可以这样做:
/'d/
您可以将两者作为匹配项一个接一个地运行。
您的正则表达式形式不正确。我不完全确定你放的是什么,但我很确定这就是你想要的:
'd+
所要做的就是匹配任何数字(实际上+
也可能不是必需的),所以如果没有匹配,你可以确信任何地方都没有数字。