我的正则表达式要求
(/^(?=^.{8,40}$)(?=.*\d)(?=.*\W+)(?=.*[a-z])(?=.*[A-Z])(?!^.*\n).*$/)
但是,如果我输入1234ABcd_
时验证失败,则只有_
似乎未被识别为特殊字符。我的正则表达式上有什么解决方案吗?谢谢!
答案 0 :(得分:4)
您似乎正在使用(?=.*\W+)
来匹配特殊字符。但是_
是\w
中的单词字符,而\W
是其他所有字符,因此与_
不匹配。将其更改为:(?=.*[\W_]+)
此外,您不需要+
。您只需匹配1即可成功。