【问题标题】:Regex javascript for Minimum 8 characters,at least one number and one special character, maximum 32 characters [duplicate]正则表达式 javascript 最少 8 个字符,至少一个数字和一个特殊字符,最多 32 个字符 [重复]
【发布时间】:2013-07-09 08:56:02
【问题描述】:

我想要一个检查“最少 8 个字符,至少一个数字和一个特殊字符,最多 32 个字符”的正则表达式。 ,我的正则表达式是:

^(?=.*\d)(?=.*[a-zA-Z])[0-9a-zA-Z]{8,16}$

【问题讨论】:

  • 你的问题是......?
  • 你只是从某个地方复制/粘贴了那个正则表达式吗?
  • 是的,特殊字符没有被执行。它只验证 8-32 个字符和至少一个数字,如何?
  • 我想必须至少包含特殊字符,而不是可能;)

标签: javascript regex


【解决方案1】:

我测试这个正则表达式可以满意地工作

/(?=^.{8,32}$)(?=(?:.*?\d){1})(?=.*[a-z])(?=(?:.*?[!@#$%*()_+^&}{:;?.]){1})(?!.*\s)[0-9a-zA-Z!@#$%*()_+^&]*$/

您可以观看现场演示:http://jsfiddle.net/tuxrM/

var re = new RegExp(/(?=^.{8,32}$)(?=(?:.*?\d){1})(?=.*[a-z])(?=(?:.*?[!@#$%*()_+^&}{:;?.]){1})(?!.*\s)[0-9a-zA-Z!@#$%*()_+^&]*$/);

var test1 = '1234567',      //  less than 8 characters
    test2 = 'aaaaaaaa',     //  no  number & no special character
    test3 = 'aaaaaaa1',     //  no special character
    test4 = 'aaaAaa#1',     //  satisfied
    test5 = 'abcdefghigklmnopqrstuvwxyz1234567890332123';  //  more than 32 characters

re.test(test1);     //  FALSE
re.test(test2);     //  FALSE
re.test(test3);     //  FALSE
re.test(test4);     //  TRUE
re.test(test5);     //  FALSE

【讨论】:

  • 完美运行,非常感谢;)
【解决方案2】:

这实际上最好通过 3 个不同的正则表达式来解决。

/[0-9]/ //Check for at least one number.
/(SPECIAL CHARACTER)/ //Check for at least one special character. Please define "special" character.

然后

str.length >= 8 && str.length <= 32

如果这是一个密码,不要限制您的用户的密码长度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    相关资源
    最近更新 更多