我在使用正则表达式方面遇到了一些问题。我想在输入总线号时验证用户输入。
示例: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中。
答案 0 :(得分: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})?$
答案 1 :(得分:2)
由于未指定字符串的结尾,因此出现了问题。
替换为
(^\d{1,3}[A-Z]{0,3}$)|(^\d{1,3}[A-Z]{0,3}\/\d{0,3}[A-Z]{0,3}$)
希望这有帮助。
答案 2 :(得分:0)
试试这个:
^(\d{1,3}[A-Z]{0,3})(\/\d{0,3}[A-Z]{0,3})?$