Javascript 用正则表达式测试密码
我想测试一个passwprd,它必须至少包含6个字符和1个数字。我可以用什么正则表达式字符串和JS来完成这个任务 更新 我忘了写它必须有至少6个字母字符和1个数字字符,但它也应该允许特殊字符或任何其他字符。你能修改你的答案吗?我非常感谢您的回复尝试一下:Javascript 用正则表达式测试密码,javascript,regex,Javascript,Regex,我想测试一个passwprd,它必须至少包含6个字符和1个数字。我可以用什么正则表达式字符串和JS来完成这个任务 更新 我忘了写它必须有至少6个字母字符和1个数字字符,但它也应该允许特殊字符或任何其他字符。你能修改你的答案吗?我非常感谢您的回复尝试一下: password.match(/(?=.*\d).{6}/); 更多信息。据我所知,最好结合使用字符串函数和正则表达式: if( myPass.match(/[a-zA-Z]/).length >= 6 && myPas
password.match(/(?=.*\d).{6}/);
更多信息。据我所知,最好结合使用字符串函数和正则表达式:
if( myPass.match(/[a-zA-Z]/).length >= 6 && myPass.match(/\d/g).length ) {
// Good passwords are good!
}
编辑:更新以包括新规定。允许使用特殊字符,但不是必需的
if (/.{6,}/.test(password) && /\d/.test(password)) {
// success
} else {
// fail
}
- 需要6个或6个以上字符(字母、数字或)
- 至少需要一个数字
- 不允许使用任何特殊字符
new RegExp("[0-9].....|" +
".[0-9]....|" +
"..[0-9]...|" +
"...[0-9]..|" +
"....[0-9].|" +
".....[0-9]").test("password1")
这是一个用于检查密码的js 它至少检查7个字符,包含1个大写字母、1个数字和1个特殊字符,不能包含空格,希望它能帮助您
pwLength = this.value.length;
if (pwLength > 7 && pwLength < 21) {
charLengthIcon.removeClass("fail").addClass("pass");
}
else charLengthIcon.removeClass("pass").addClass("fail");
if (this.value.match(/[A-Z]/g)) {
capLetterIcon.removeClass("fail").addClass("pass");
}
else capLetterIcon.removeClass("pass").addClass("fail");
if (this.value.match(/[0-9]/g)) {
numberIcon.removeClass("fail").addClass("pass");
}
else numberIcon.removeClass("pass").addClass("fail");
if (this.value.match(/[@#$%!$&~*^(){}?><.,;:"'-+=|]/g)) {
splcharIcon.removeClass("fail").addClass("pass");
}
else splcharIcon.removeClass("pass").addClass("fail");
if (this.value.match(/[\s/]/g)) {
whiteSpce.removeClass("pass").addClass("fail");
}
else whiteSpce.removeClass("fail").addClass("pass");
confirmPW();
pwLength=this.value.length;
如果(pwLength>7&&pwLength<21){
charLengthIcon.removeClass(“失败”).addClass(“通过”);
}
else charLengthIcon.removeClass(“通过”).addClass(“失败”);
if(此.value.match(/[A-Z]/g)){
CaplettIcon.removeClass(“失败”).addClass(“通过”);
}
else caplettIcon.removeClass(“通过”).addClass(“失败”);
if(此.value.match(/[0-9]/g)){
numberIcon.removeClass(“失败”).addClass(“通过”);
}
else numberIcon.removeClass(“通过”).addClass(“失败”);
if(this.value.match(/[@#$%!$&~*^(){}?>听起来像是我的家庭作业……学习正则表达式的一个好资源:我同意,我不确定你能用一个直接的正则表达式做到这一点。这不允许使用特殊字符吗?是的。Spec从来没有说过其他的话。+1因为你的第二个正则表达式在同一时间既聪明又糟糕。我会把第一个正则表达式写成/(?=.*\d)。{6,}/
,但它是tomayto/tomahto。第二个正则表达式不起作用。要求“至少6个字符”,因此从技术上讲,您需要无限多的行。实际上,@cwolves,它会起作用。如果您的正则表达式以“^”开头,以$结尾,您只需要无限多的行。为什么不允许使用特殊字符?@Justin-只是说这不允许使用它们。您只需调整[\w\d]
允许你想要的任何东西。啊,这是有道理的。顺便说一句,[\w\d]
实际上是多余的;\w
包括数字。@cwolves-仔细检查,你是对的。只有当它是/^(?=.\d)时才是真的。{6}$/
,这意味着我现在想起来,这实际上相当聪明。+1.很好的一点。这个表达式最适合查找字符串是否匹配,但不适合匹配整个密码。仅供参考,正则表达式实际上更快,因为引擎可以退出并说“true”唯一的缺点是它允许任何内容,甚至包括空格、制表符、nul字符等。
new RegExp("[0-9].....|" +
".[0-9]....|" +
"..[0-9]...|" +
"...[0-9]..|" +
"....[0-9].|" +
".....[0-9]").test("password1")
pwLength = this.value.length;
if (pwLength > 7 && pwLength < 21) {
charLengthIcon.removeClass("fail").addClass("pass");
}
else charLengthIcon.removeClass("pass").addClass("fail");
if (this.value.match(/[A-Z]/g)) {
capLetterIcon.removeClass("fail").addClass("pass");
}
else capLetterIcon.removeClass("pass").addClass("fail");
if (this.value.match(/[0-9]/g)) {
numberIcon.removeClass("fail").addClass("pass");
}
else numberIcon.removeClass("pass").addClass("fail");
if (this.value.match(/[@#$%!$&~*^(){}?><.,;:"'-+=|]/g)) {
splcharIcon.removeClass("fail").addClass("pass");
}
else splcharIcon.removeClass("pass").addClass("fail");
if (this.value.match(/[\s/]/g)) {
whiteSpce.removeClass("pass").addClass("fail");
}
else whiteSpce.removeClass("fail").addClass("pass");
confirmPW();