检查是字符串包含特殊字符和数字和字母中至少 2 个字符
Check is string contains special characters and at least 2 characters amongs digit and letter
大家好,我正在尝试检查密码是否包含特殊字符和至少 2 个字符(数字或字母)
所以像这样:
("&#€$&&÷") ====> false
("&#&'&*#5") ====> false
(">~<<`<•5t") ====> true
("{\><>\tt") =====> true
("65%#^$*@") ====> true
("7373673") ====> false
("7267373~") ====> true
我试过这个正则表达式,但它似乎不起作用:
/^((?=.*\d{2})|(?=.*?[a-zA-Z]{2}))/
您可以断言同一前瞻中出现的 2 次字符或数字,然后至少匹配一个“特殊”字符。
使用不区分大小写的模式:
^(?=(?:[^a-z\d\n]*[a-z\d]){2})[a-z\d]*[~!@#$%^&*()_+<>•`{}\][~!@#$%^&*()_+<>•`{}\a-z\d]*$
模式匹配:
^
字符串开头
(?:[^a-z\d\n]*[a-z\d]){2}
断言字符 a-z 或数字出现 2 次。 [^a-z\d\n]*
部分使用 [^
否定字符 class 以防止不必要的回溯
[a-z\d]*
匹配可选字符 a-z 或数字
[~!@#$%^&*()_+<>•`{}\]
匹配一个特殊字符
[~!@#$%^&<em>()_+<>•`{}\a-z\d]</em>
匹配可选的允许字符
$
字符串结束
大家好,我正在尝试检查密码是否包含特殊字符和至少 2 个字符(数字或字母) 所以像这样:
("&#€$&&÷") ====> false
("&#&'&*#5") ====> false
(">~<<`<•5t") ====> true
("{\><>\tt") =====> true
("65%#^$*@") ====> true
("7373673") ====> false
("7267373~") ====> true
我试过这个正则表达式,但它似乎不起作用:
/^((?=.*\d{2})|(?=.*?[a-zA-Z]{2}))/
您可以断言同一前瞻中出现的 2 次字符或数字,然后至少匹配一个“特殊”字符。
使用不区分大小写的模式:
^(?=(?:[^a-z\d\n]*[a-z\d]){2})[a-z\d]*[~!@#$%^&*()_+<>•`{}\][~!@#$%^&*()_+<>•`{}\a-z\d]*$
模式匹配:
^
字符串开头(?:[^a-z\d\n]*[a-z\d]){2}
断言字符 a-z 或数字出现 2 次。[^a-z\d\n]*
部分使用[^
否定字符 class 以防止不必要的回溯[a-z\d]*
匹配可选字符 a-z 或数字[~!@#$%^&*()_+<>•`{}\]
匹配一个特殊字符[~!@#$%^&<em>()_+<>•`{}\a-z\d]</em>
匹配可选的允许字符$
字符串结束