Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 密码强度的正则表达式,带有除下划线以外的一个特殊字符_Regex_Model View Controller - Fatal编程技术网

Regex 密码强度的正则表达式,带有除下划线以外的一个特殊字符

Regex 密码强度的正则表达式,带有除下划线以外的一个特殊字符,regex,model-view-controller,Regex,Model View Controller,我有以下正则表达式: ^.*(?=^.{8,}$)(?=.*\d)(?=.*[!@#$%^&*-])(?=.*[A-Z])(?=.*[a-z]).*$ ^.*(?=^.{8,}$)(?=.*\d)(?=.[!@$%^&*-])(?=.[A-Z])(?=.[A-Z])*$ 我用它来验证 至少有一个字母 至少一个大写字母 至少一个号码 至少一个特殊字符 至少8个字符 但除此之外,我还需要限制下划线(\uu)。 如果我输入passwordPa$sw0rd,这是正确的验证,这是真的。 如果我输入Pa$\

我有以下正则表达式:

^.*(?=^.{8,}$)(?=.*\d)(?=.*[!@#$%^&*-])(?=.*[A-Z])(?=.*[a-z]).*$ ^.*(?=^.{8,}$)(?=.*\d)(?=.[!@$%^&*-])(?=.[A-Z])(?=.[A-Z])*$ 我用它来验证
至少有一个字母
至少一个大写字母
至少一个号码
至少一个特殊字符
至少8个字符

但除此之外,我还需要限制下划线(
\uu
)。 如果我输入password
Pa$sw0rd
,这是正确的验证,这是真的。 如果我输入
Pa$\u sw0rd
这也是正确验证,这是错误的

问题是,当所有规则都得到满足时,正则表达式就通过了。我想要一个规则来限制上面的下划线


任何帮助都将是非常可观的。

我认为您可以使用否定字符类
[^\u]*
来添加此限制(另外,删除初始的
*
,它是多余的,并且第一个前瞻已经在模式的开头,无需重复
^
,并且它是完全多余的,因为可以在结尾检查总长度限制):

您可以试试这个。
*
在开始时没有用。请参阅演示


不应该有
\uu
?????每个需求都有一个正则表达式将使整个事情更容易编码、理解、更新和维护。您正在使用
*
添加另一个前瞻性,这会降低性能。@Stribizev是的,但我觉得添加了一个显示另一种方式或新方法的答案od处理相同的事情,尽管性能不同,如果可以:)增加了知识kitty:)非常欢迎您。如果答案对您有效,请接受(向下箭头下方左侧的勾号)。
^(?=.*\d)(?=.*[!@#$%^&*-])(?=.*[A-Z])(?=.*[a-z])[^_]{8,}$
^(?=.*?\d)(?=.*?[!@#$%^&*-])(?=.*?[A-Z])(?=.*?[a-z])(?!.*_).{8,}$