【发布时间】:2020-02-20 07:20:43
【问题描述】:
我需要一个正则表达式来满足此密码策略要求 最少八 (8) 个字符 至少一个数字 (0-9) 以下任意三项: 小写 大写 数字 特殊字符 ( !" # $ % & ' ( ) * + , - 。 / : ; ? @ [ \ ] ^ _ ` { | } ~ )
现在我正在使用这个正则表达式至少八 (8) 个字符
/^(?=.*\d)[ !#$%&()*+,.\/:;<=>?@[\]^`{|}~\w-]{8,}$/
这个正则表达式没有按预期工作,它正在接受输入 testtest1 作为正确的匹配。它应该将此 test@test1,Testtest12 作为正确的输入
【问题讨论】:
-
以下任意三个:小写大写数字特殊字符在正则表达式中这样做会很烦人。可能,但请考虑以编程方式实现它。
-
在我看来,您好像没有转义具有特殊含义的字符。你也不能实现一些 ASCII 字符类吗?
-
但是
testtest1确实有一个数字和Any three of the following: Lowercase Uppercase Number Special character对吗?如果你想要这三个中的任何一个,它将匹配 regex101.com/r/iqgvsm/1 如果应该有一个大写或特殊字符 regex101.com/r/sbI8m9/1 -
如何使用多种模式,例如,一种检查小写字符,一种检查大写字符,一种检查数字,另一种检查特殊...如果您全部应用它们,您可以轻松确定有多少标准匹配;)
-
@SalmanKhan 只是为了完整性,你的正则表达式知道空格......你可能也想将它们添加到另一个正则表达式中
标签: javascript regex passwords