【发布时间】:2013-09-15 18:36:41
【问题描述】:
我的密码检查器有点问题。
有一个包含一些字段的注册表单。 我使用 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>
【问题讨论】:
-
显示其余代码。您的
.validate()电话在哪里?表单的 HTML 标记在哪里? -
你在哪里添加了前瞻?向我们展示您尝试过的代码而不是您的工作版本。
-
我几乎在所有地方都添加了它。至少20个不同的位置。我没有所有的代码了......不得不说我对此很陌生。所以请原谅我。我确定它只是一个括号或类似的东西,我忘记了。
-
/^(?=.*[a-z])[A-Za-z0-9\d=!\-@._*]+$/应该已经做到了。你试过吗?如果是这样,它是如何失败的? -
贝尔吉,谢谢!奇迹般有效!不要我怎么做不到……有时你只是为了树木而想念森林。无论如何,非常感谢!
标签: jquery regex passwords jquery-validate