1

我目前的正则表达式看起来像

([a-zA-Z]*[0-9]+[\/\\#-]?[a-zA-Z0-9]*)+

正则表达式应验证:

  1. 字母数字字符
  2. 必须包含至少一个数字
  3. / , \ , # , - , 被允许
  4. 必须少于 30 个字符

我正在使用的正则表达式(如上所述)正在使用数字验证任何东西。它不检查特殊字符的有效性。有人可以指出我哪里出错了吗?更新:用过这个

^([a-zA-Z]*[0-9]+[\/\\#-]?[a-zA-Z0-9]*)+$

不适用于 -1 ,/1 等字符串

4

2 回答 2

3

我能想到的最简单的正则表达式是:

^(?=.*\d)[a-zA-Z\d\\/#-]{1,29}$

字符类和重复非常简单。在添加^$结尾之后,主要的功夫是锚定的向前看,以断言数字的存在。

于 2013-09-05T05:35:54.297 回答
1

它匹配任何带有数字的东西,因为没有锚点并且所有其他子表达式都是可选的。如果您打算匹配整个字符串,您需要以or开头您的正则表达式并以\Aor^结尾。\Z$

于 2013-09-05T05:22:18.713 回答