我的密码检查器出了点问题。
这里有一个注册表,里面有一些字段。我使用jQuery Validate插件来验证用户输入。
除了密码验证外,其他功能都可以正常工作:
密码应满足一些最低要求:
- 最小长度:8 -〉我只是使用'minlength:8'
- 至少一个小写字符
- 至少一位数字
- 允许的字符:A-Z a-z 0-9 @ * _ - .!
目前我使用以下代码验证密码:
$.validator.addMethod("pwcheck",
function(value, element) {
return /^[A-Za-z0-9\d=!\-@._*]+$/.test(value);
});
此代码适用于允许的字符,但不适用于最低要求。我知道您可以使用例如(?=.*[a-z])
的小写要求。但我只是没有得到它的工作。
如果我添加了(?=.*[a-z])
,整个代码就不能工作了。我需要知道如何正确地将代码添加到现有的代码中。
谢谢你的回答!
这是完整的代码
<script>
$(function() {
$("#regform").validate({
rules: {
forename: {
required: true
},
surname: {
required: true
},
username: {
required: true
},
password: {
required: true,
pwcheck: true,
minlength: 8
},
password2: {
required: true,
equalTo: "#password"
},
mail1: {
required: true,
email: true
},
mail2: {
required: true,
equalTo: "#mail1"
}
},
messages: {
forename: {
required: "Vornamen angeben"
},
surname: {
required: "Nachnamen angeben"
},
username: {
required: "Usernamen angeben"
},
password: {
required: "Passwort angeben",
pwcheck: "Das Passwort entspricht nicht den Kriterien!",
minlength: "Das Passwort entspricht nicht den Kriterien!"
},
password2: {
required: "Passwort wiederholen",
equalTo: "Die Passwörter stimmen nicht überein"
},
mail1: {
required: "Mail-Adresse angeben",
email: "ungültiges Mail-Format"
},
mail2: {
required: "Mail-Adresse wiederholen",
equalTo: "Die Mail-Adressen stimmen nicht überein"
}
}
});
$.validator.addMethod("pwcheck",
function(value, element) {
return /^[A-Za-z0-9\d=!\-@._*]+$/.test(value);
});
});
</script>
9条答案
按热度按时间yjghlzjz1#
如果我添加
(?=.*[a-z])
,整个代码将不再工作。在此添加:
但是,不使用前瞻功能执行此操作要容易得多:
x759pob22#
您可以创建自己的自定义jQuery验证规则。该规则将以100%的准确率返回所有条件的有效消息。
sdnqo3pr3#
您可以使用{8,}代替“+”,表示最少8个字符,没有最大值,或者更好的是使用{8,20},表示最少8个字符,最多20个字符。
真的,尽管我看不出把所有的验证都压缩到一个正则表达式中有什么价值,如果你把它分开,它会更容易维护,更不容易出现bug,而且它可以让你向用户报告密码失败的具体原因,而不是整个要求。
你可以把它分成几张支票
我不熟悉jQuery Validation插件,但我认为您可以为每个失败的测试返回一条有用的消息。
lzfw57am4#
如果要检查确认密码和最少字符数验证,则可以使用
o7jaxewo5#
密码验证可以使用多个规则,例如:
byqmnocz6#
如果使用ValidationEngine,则可以使用以下命令
将此代码添加到jquery.validationEngine-en.js文件中
然后使用
在文本框类中
mum43rcc7#
试试这个有所有特殊符号的
h4cxqtbf8#
以下方法将检查一个大写字母、一个数字和一个特殊字符。
对于长度检查,可以添加
minlenth:8
、maxlength:20
cs7cruho9#
试试这个: