编辑不属于我的正则表达式,不确定如何根据需要进行调整

时间:2011-04-27 02:48:56

标签: php regex string-length

我有一个为我写的密码的正则表达式:

~^[a-z0-9!@#\$%\^&\*\(\)]{8,16}$~i

它应该匹配字母数字字符串和8-16个字符的符号。现在我需要删除最小和最大长度要求,因为我需要拆分错误消息以便用户友好 - 我试图取出{8,16}部分,但随后它打破了它。我该怎么做?提前谢谢。

1 个答案:

答案 0 :(得分:2)

我认为你正在对太长或太短的字符串进行单独检查,而这个正则表达式只是确保没有无效字符。这应该这样做:

~^[a-z0-9!@#$%^&*()]+$~i

+表示一个或多个*表示零或更多;你使用哪一个并不重要。

我也摆脱了一些不必要的反斜杠;这些字符中没有一个在字符类中有任何特殊含义(在方括号内,即)。