1

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

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

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

4

1 回答 1

2

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

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

+表示一个或多个*表示零个或多个;您使用哪一个可能并不重要。

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

于 2011-04-27T03:17:05.900 回答