使用Regex测试密码

时间:2011-06-09 22:21:11

标签: javascript regex

我想测试一个passwprd,其中必须包含至少6个字符和1个数字。我可以用JS使用什么正则表达式字符串来完成这项工作?

已更新 我忘了写它必须至少有6个字母字符和1个数字字符,但它也应该允许特殊字符或任何其他字符。你能修改一下你的答案吗?我非常感谢您的回复

6 个答案:

答案 0 :(得分:2)

试试这个:

password.match(/(?=.*\d).{6}/);

更多信息here

答案 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)
  • 需要6个或更多字符(字母,数字或_)
  • 至少需要一位数字
  • 不允许任何特殊字符

答案 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();

});