我有一个表单,它使用 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),提交后,password post 变量显示已输入的密码。
我已经搜索了几个小时的解决方案,但没有结果。
有什么想法吗?
最佳答案
这已经通过验证了吗?目前,您的正则表达式仅接受具有以下特征的密码:第一个字符必须是大写字母,第二个字符必须是小写字母,后跟 1 个或多个数字。
尝试更多类似这样的事情:
/[A-Za-z0-9]+/
你还可以这样做:
/[a-z0-9]+/i
i
标志使其不区分大小写。
如果你希望它至少包含一个数字,你可以这样做:
/\d/
您可以将两者作为匹配项运行,一个接一个。
关于php - 密码验证不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18495931/