密码策略要求正则表达式
Password policy requirement regex
我需要一个正则表达式来满足此密码策略要求
最少八 (8) 个字符
至少一个数字(0-9)
以下任意三项:
小写
大写
数字
特殊字符 (!" # $ % & ' ( )
* + , - 。 / : ; < = > ? @[\]^_`{ | } ~ )
现在我正在使用这个正则表达式至少八 (8) 个字符
/^(?=.*\d)[ !#$%&()*+,.\/:;<=>?@[\]^`{|}~\w-]{8,}$/
这个正则表达式没有按预期工作,它正在接受输入
testtest1作为右match.It应该把这个test@test1,Testtest12作为右输入
您需要稍微更改一下前瞻部分。
^(?=.{8,})(?=.*[0-9].*)(.*[\!"#$%&'\(\)\*+,\-.\/:;<=>?@\[\\]^_`{|}~].*){3,}
(?=.{8,})
= 最小八个字符长度(正先行)
(?=.*[0-9].*)
= 至少一个数字(正向预测)
(.*[\!"#$%&'\(\)\*+,\-.\/:;<=>?@\[\\]^_
{|}~].*){3,}` 列表中某处的任何字符至少出现三次
该模式将匹配 testtest1
,因为您只断言一个必需的数字,后面的字符 class [ !#$%&()*+,.\/:;<=>?@[\]^
{|}~\w-]{8,}` 将重复匹配至少 8 次任何列出的。
如果您还想断言一个大写字符 A-Z 或一个特殊字符,您可以使用另一个带有 alternation
的正向先行
^(?=.*\d)(?=.*(?:[A-Z]|[!#$%&()*+,.\/:;<=>?@[\]^`{|}~-]))[!#$%&()*+,.\/:;<=>?@[\]^`{|}~\w-]{8,}$
注意我省略了匹配spaces,如果你想匹配它,你可以将space添加到字符class (不确定您是否允许密码中包含 spaces)
我需要一个正则表达式来满足此密码策略要求 最少八 (8) 个字符 至少一个数字(0-9) 以下任意三项: 小写 大写 数字 特殊字符 (!" # $ % & ' ( ) * + , - 。 / : ; < = > ? @[\]^_`{ | } ~ )
现在我正在使用这个正则表达式至少八 (8) 个字符
/^(?=.*\d)[ !#$%&()*+,.\/:;<=>?@[\]^`{|}~\w-]{8,}$/
这个正则表达式没有按预期工作,它正在接受输入 testtest1作为右match.It应该把这个test@test1,Testtest12作为右输入
您需要稍微更改一下前瞻部分。
^(?=.{8,})(?=.*[0-9].*)(.*[\!"#$%&'\(\)\*+,\-.\/:;<=>?@\[\\]^_`{|}~].*){3,}
(?=.{8,})
= 最小八个字符长度(正先行)
(?=.*[0-9].*)
= 至少一个数字(正向预测)
(.*[\!"#$%&'\(\)\*+,\-.\/:;<=>?@\[\\]^_
{|}~].*){3,}` 列表中某处的任何字符至少出现三次
该模式将匹配 testtest1
,因为您只断言一个必需的数字,后面的字符 class [ !#$%&()*+,.\/:;<=>?@[\]^
{|}~\w-]{8,}` 将重复匹配至少 8 次任何列出的。
如果您还想断言一个大写字符 A-Z 或一个特殊字符,您可以使用另一个带有 alternation
的正向先行^(?=.*\d)(?=.*(?:[A-Z]|[!#$%&()*+,.\/:;<=>?@[\]^`{|}~-]))[!#$%&()*+,.\/:;<=>?@[\]^`{|}~\w-]{8,}$
注意我省略了匹配spaces,如果你想匹配它,你可以将space添加到字符class (不确定您是否允许密码中包含 spaces)