Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用正则表达式测试密码_Javascript_Regex - Fatal编程技术网

Javascript 用正则表达式测试密码

Javascript 用正则表达式测试密码,javascript,regex,Javascript,Regex,我想测试一个passwprd,它必须至少包含6个字符和1个数字。我可以用什么正则表达式字符串和JS来完成这个任务 更新 我忘了写它必须有至少6个字母字符和1个数字字符,但它也应该允许特殊字符或任何其他字符。你能修改你的答案吗?我非常感谢您的回复尝试一下: password.match(/(?=.*\d).{6}/); 更多信息。据我所知,最好结合使用字符串函数和正则表达式: if( myPass.match(/[a-zA-Z]/).length >= 6 && myPas

我想测试一个passwprd,它必须至少包含6个字符和1个数字。我可以用什么正则表达式字符串和JS来完成这个任务

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

尝试一下:

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个以上字符(字母、数字或)
  • 至少需要一个数字
  • 不允许使用任何特殊字符

这闻起来确实有点像家庭作业问题,但很好。实际上,您可以使用单个正则表达式和“向前看”功能简洁地实现这一点

括号中的第一位表示“向前看,看是否有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();