我有一个为我写的密码的正则表达式:
~^[a-z0-9!@#\$%\^&\*\(\)]{8,16}$~i
它应该匹配字母数字字符串和8-16个字符的符号。现在我需要删除最小和最大长度要求,因为我需要拆分错误消息以便用户友好 - 我试图取出{8,16}部分,但随后它打破了它。我该怎么做?提前谢谢。
答案 0 :(得分:2)
我认为你正在对太长或太短的字符串进行单独检查,而这个正则表达式只是确保没有无效字符。这应该这样做:
~^[a-z0-9!@#$%^&*()]+$~i
+
表示一个或多个,*
表示零或更多;你使用哪一个并不重要。
我也摆脱了一些不必要的反斜杠;这些字符中没有一个在字符类中有任何特殊含义(在方括号内,即)。