我想测试一个passwprd,其中必须包含至少6个字符和1个数字。我可以用JS使用什么正则表达式字符串来完成这项工作?
已更新 我忘了写它必须至少有6个字母字符和1个数字字符,但它也应该允许特殊字符或任何其他字符。你能修改一下你的答案吗?我非常感谢您的回复
答案 0 :(得分:2)
答案 1 :(得分:2)
据我所知,最好使用字符串函数和正则表达式的组合:
if( myPass.match(/[a-zA-Z]/).length >= 6 && myPass.match(/\d/g).length ) {
// Good passwords are good!
}
编辑:更新以包含新规定。允许使用特殊字符,但不是必需的。
答案 2 :(得分:2)
这确实有点像家庭作业的问题,但是哦。实际上,您可以使用单个正则表达式和“向前看”功能简洁地完成此操作。
/(?=.{6}).*\d.*/.test("helelo1")
括号中的第一位表示“向前看,看看是否有6个字符”。在此之后,我们检查任意数量的字符,后跟一个数字,后跟任意数量的字符。
甚至可以在一个正则表达式中实现你的目标,而没有前瞻性的能力......只是有点难以看到解决方案而不是畏缩:
new RegExp("[0-9].....|" +
".[0-9]....|" +
"..[0-9]...|" +
"...[0-9]..|" +
"....[0-9].|" +
".....[0-9]").test("password1")
答案 3 :(得分:1)
if (/.{6,}/.test(password) && /\d/.test(password)) {
// success
} else {
// fail
}
答案 4 :(得分:1)
/^(?=[\w\d]{6,}$)(?=.*\d)/.test(password)
答案 5 :(得分:0)
这是用于检查密码的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();
});