我正在尝试使用正则表达式验证输入。到目前为止,我所有的测试都失败了,而且由于我对正则表达式的经验有限,我认为有人可能会帮助我。
模式:数字(可能是 “,” 数字)(可能是 ;)
字符串不能以 ; 开头。并且不以 ; 结尾。数字可以单独或与
我的正则表达式(不工作):((\d)(,\d)?)(;?)
问题是它似乎直到字符串结束才检查。可选部件也让我头疼。
更新:^[0-9]+(,[0-9])?(;[0-9]+(,[0-9])?)+$
这似乎效果更好,但与个位数不匹配。
好的:
2,3;4,4;3,2
2,3
2
2,3;3;4,3
足够的:
2,3,,,,,
2,3asfafafa
;2,3
2,3;;3,4
2,3;3,4;
您的^[0-9]+(,[0-9])?(;[0-9]+(,[0-9])?)+$
正则表达式匹配 1 个或多个数字,然后是,
和 1 个数字的可选序列,然后是一个或多个类似序列。
您需要匹配零个或多个逗号分隔的数字:
^\d+(?:,\d+)?(?:;\d+(?:,\d+)?)*$
^
查看正则表达式演示
现在,调整部分:
^\d(?:,\d)?(?:;\d(?:,\d)?)*$
?
在每个元素之后添加,\d
(如果要匹配单个数字)或*
(如果数字可以有多个数字):^\d(?:,\d?)?(?:;\d(?:,\d?)?)*$
或^\d+(?:,\d*)?(?:;\d+(?:,\d*)?)*$
。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句