密码正则表达式(客户端javascript)

时间:2011-06-07 12:22:40

标签: c# javascript jquery regex

我需要以下标准的正则表达式:

Atleast 7个带有1个特殊字符的字母数字字符

我用过这个:

^.*(?=.{7,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$!%^&+=]).*$

如果输入Password1,它可以正常工作!但对PASSWORD1不起作用!。

不适用于:Stmaryshsp1tal!

我正在使用Jquery验证插件,我指定了正则表达式。

当我使用正则表达式验证器并指定以下正则表达式时:

^.*(?=.{7,})(?=(.*\W){1,}).*$

它完美无缺。当我在Jquery验证中设置这个正则表达式时,我使用它不起作用。

有人可以对此有所了解吗?我想明白为什么我的第一个正则表达式不起作用。

5 个答案:

答案 0 :(得分:0)

(?=.\d)(?=.[a-z])

尝试匹配同一位置的数字和字母数字字符。请记住,(?= ... )不会包含任何内容。

你想要的可能是:

^(?=.*\W)(?=(.*\w){7})

这与非常相似,你的字符串都匹配^.*\W(至少一个特殊字符)和^(.*\w){7})(7个字母数字字符。请注意,如果还有更多字符,它也匹配。

答案 1 :(得分:0)

作为快速测试正则表达式的好工具,我建议http://regexpal.com/(没有关系;))。有时简化表达会有很大帮助。

然后你可能想尝试像^[a-zA-Z0-9@#$!%^&+=]{7,}$

这样的东西

更新2 现在包括数字

^.*(?=.{7,})(?=.*\d)(?=.*[a-zA-Z])(?=.*[@#$%^&+=!]).*$

匹配:

  • Stmarysh3sptal!,password1!,PASSWORD1P !!!!!! @#^^ ASSWORD1,122ss121a212 !!

......但不是:

  • Password1,PASSWORD1PASSWORD1,PASSWORD!,密码!,1221121212 !!等

答案 2 :(得分:0)

试试这个正则表达式:

\S*[@#$!%^&+=]+\S*(?<=\S{7,})

EDIT3:好的,这是最后一次编辑;)。

这也会与其他特殊字符相匹配。因此,如果您不限制有效字符的数量,请将\S更改为所有有效字符的范围。

答案 3 :(得分:0)

这是正则表达式,我认为它可以处理所有可能的组合..

^(?=.{7,})\w*[.@#$!%^&+=]+(\w*[.@#$!%^&+=]*)*$

这是此正则表达式http://regexr.com?2tuh5

的链接

答案 4 :(得分:0)

匹配Password1!但不匹配PASSWORD1!的原因是此条款:

(?=.*[a-z])

密码中至少需要一个小写字母。该模式表示密码长度必须至少为7个字符,并且包含大写和小写字母,至少一个数字,以及@#$!%^&+=中的至少一个。 PASSWORD1!失败,因为其中没有小写字母。

第二种模式接受PASSWORD1!,因为它是一个远远弱于密码的要求。它要求的是密码是7个以上的字符,并且其中至少包含一个特殊字符(_除外)。顺便说一下,{1,}是不必要的。

如果我是你,我会避免削弱密码并保持原样。如果我出于某种原因想要允许全小写或全大写密码,我只需将其更改为

^(?=.*\d)(?=.*[a-zA-Z])(?=.*[@#$!%^&+=]).{7,}$

...因此不会削弱密码要求。