我有一个HTML5输入,该输入可以接受未知长度的字符串,以逗号分隔的5位数字。以下所有3个都是有效输入:
,然后(从理论上讲)变成一个无限数。
我正在使用正则表达式进行验证。它几乎可以正常工作,但是我现在需要用逗号结尾,这是不必要的。
我现有的尝试:([0-5][0-9][0-4][0-9][1-6],)*
(需要结尾的逗号)和([0-5][0-9][0-4][0-9][1-6],?)*
(范围太广,将验证诸如1234512345之类的内容且没有逗号)。
我对正则表达式不太了解,我是否缺少简单的东西?
答案 0 :(得分:1)
由于可选部分以,
开头,因此您需要的是:
[0-5][0-9][0-4][0-9][1-6](,[0-5][0-9][0-4][0-9][1-6])*
不幸的是,您有一个复杂的要求,要求RE中有重复项,但是如果您放宽该约束,则可以执行以下更简洁的操作:
[0-9]+(,[0-9]+)*
甚至是这取决于您是否可以使用POSIX扩展的表达式:
\d+(,\d+)*
这使得查看第一个对象的操作要容易一些。