4

我在使用正则表达式时遇到了一些问题。我想在输入公交车号时验证用户输入。

示例:37、37A、37S、37A/L、16A/250、16A/250K 等

我想出的正则表达式是

(^\d{1,3}[A-Z]{0,3})|(^[\d{1,3}[A-Z]{0,3}\/\d{0,3}[A-Z]{0,3}])

它验证 37、37A、37S,但在验证 37A/L 时失败。有人能告诉我我哪里出了问题吗?

注意:我正在为文本框使用正则表达式验证器。我已将它放在 ValidationExpression 中。

4

3 回答 3

2

您不需要转义/字符,请尝试以下操作:

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

您还可以通过指定 EOS 字符来强制整行与正则表达式匹配:

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

注意@MaxwellTroyMiltonKing 在评论中指出整个正则表达式周围的括号是不必要的:

^\d{1,3}[A-Z]{0,3}(?:/\d{0,3}[A-Z]{0,3})?$
于 2013-03-25T12:21:15.453 回答
2

由于未指定字符串结尾,因此出现问题。

换成这个,

(^\d{1,3}[A-Z]{0,3}$)|(^\d{1,3}[A-Z]{0,3}\/\d{0,3}[A-Z]{0,3}$)

希望这可以帮助。

于 2013-03-25T12:21:46.170 回答
0

尝试这个:

^(\d{1,3}[A-Z]{0,3})(\/\d{0,3}[A-Z]{0,3})?$
于 2013-03-25T12:24:10.660 回答