5

我正在尝试创建一个正则表达式来验证一个字段,用户可以在该字段中输入一个 5 位数字,并选择添加一个/后跟 3 个字母。我已经尝试了以下代码的很多变体:

^(\d{5})+?([/]+[A-Z]{1,3})? 

但我似乎无法得到我想要的。

例如,我希望用户输入一个 5 位数字,例如可以12345选择添加正斜杠后跟任意 3 个字母,例如12345/WFE.

4

4 回答 4

8

你可能想要:

^\d{5}(?:/[A-Z]{3})?$

根据您的正则表达式风格,您可能必须转义该正斜杠。

解释:

  • ^- 字符串锚的开始
  • \d{5}- 5 位数
  • (?:/[A-Z]{3})/- 由一个文字后跟 3 个大写字母组成的非捕获组(根据您的需要,您可以考虑通过删除 将其设为捕获组?:)。
  • ?- 前面的 0 或 1(在这种情况下,它是正上方的非捕获组)。
  • $- 字符串锚的末端

总而言之,正则表达式看起来像这样:

在此处输入图像描述

于 2013-09-29T15:40:12.883 回答
2

你可以使用这个正则表达式

/^\d{5}(?:\/[a-zA-Z]{3})?$/
于 2013-09-29T15:40:23.723 回答
2
^\d{5}(?:/[A-Z]{3})?$

这是在实践中(这是一个测试你的正则表达式的好网站): http ://regexr.com?36h9m

于 2013-09-29T15:41:50.810 回答
2
^(\d{5})(\/[A-Z]{3})?

用红字测试

于 2013-09-29T15:46:23.347 回答