我需要一个满足以下条件的正则表达式:
至少 7 个字母数字字符和 1 个特殊字符
我用过这个:
^.*(?=.{7,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$!%^&+=]).*$
如果我输入 Password1,它会正常工作!但不适用于 PASSWORD1!
不会为:Stmaryshsp1tal 工作!
我在指定正则表达式的位置使用 Jquery 验证插件。
当我使用正则表达式验证器并指定以下正则表达式时:
^.*(?=.{7,})(?=(.*\W){1,}).*$
它运行完美,没有任何问题。当我在 Jquery 验证中设置此正则表达式时,我正在使用它不起作用。
请问有人能解释一下吗?我想了解为什么我的第一个正则表达式不起作用。
请您参考如下方法:
(?=.\d)(?=.[a-z])
尝试在同一位置匹配数字和字母数字字符。请记住 (?= ... ) 不会 glob 任何东西。
你想要的可能是:
^(?=.*\W)(?=(.*\w){7})
这与确认您的字符串同时匹配 ^.*\W(至少一个特殊字符)和 ^(.*\w){7})(7 个字母数字字符。请注意,如果有更多,它也会匹配。
