使用特定集中的可选特殊字符进行密码验证的正则表达式

时间:2018-01-03 14:55:17

标签: javascript regex

我想弄清楚如何制作特殊字符。 (仅限选定的)在以下正则表达式中可选:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[[\]{};:=<>_+^#$@$!%*?&])[A-Za-z\d[\]{};:=<>_+^#$@$!%*?&]{8,30} 

在正则表达式上面检查此集合中是否至少有1个数字,1个大写,1个小写和1个特殊字符:[[] {};:=&lt;&gt; + ^#$ @ $!%*? &安培;

现在我尝试制作特殊字符。可选但如果提供它应该来自允许的集合,所有其他条件(1个大写,1个数字,1个小写)应该匹配。任何想法,如何使这项工作?

1 个答案:

答案 0 :(得分:1)

您可以从正则表达式中删除此前瞻:

(?=.*[[\]{};:=<>_+^#@$!%*?&])

此断言强制在正则表达式中至少存在一个特殊字符。

你的正则表达式将成为:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d[\]{};:=<>_+^#$@!%*?&]{8,30}$

RegEx Demo