2

我要为以下要求编写一个正则表达式

  1. 至少一个字符
  2. 至少一位数
  3. 长度必须为 8
  4. 至少一个特殊字符(可以是任何特殊字符)

前三个很容易,但找不到至少限制特殊字符(任何可能的特殊字符',":*^%>?等)的方法。

4

1 回答 1

2

您可以结合使用前瞻来解决这些问题:

  1. (?=.*[a-zA-Z])
  2. (?=.*\d)
  3. .{8}
  4. (?=.*[^\da-zA-Z])

最后一个只需要一个非字母和非数字,这可能是迄今为止指定您想要一个有点“特殊”字符的最简单方法。

所以最后你有

^(?=.*[a-zA-Z])(?=.*\d)(?=.*[^\da-zA-Z]).{8}$
于 2013-03-13T13:33:28.600 回答