正则表达式允许一个十进制数或一个十进制数范围

时间:2014-04-30 12:59:27

标签: regex

我需要一个JavaScript正则表达式,它匹配单个十进制数一个十进制数范围:

8,4-10 true 8,4-10,5 true 8,4-10,5-3 false 8,4- false 25 true 25,5 true 24.1 false 1a false abc false

我已经提出了这种模式,但它没有给出正确的结果:

(([0-9])+(,([0-9])+)?)?(-(([0-9])+(,([0-9])+)?))?

1 个答案:

答案 0 :(得分:0)

你的正则表达式是正确的,你只需要锚定它以确保你匹配整个字符串,而不仅仅是它的一部分。

简化可能的内容,它变为:

^\d+(?:,\d+)?(?:-\d+(?:,\d+)?)?$

\d[0-9]的缩写,(?:...)是非捕获组,^$是匹配字符串开头和结尾的锚点(确保没有其他内容)比你想要的更多。

请参阅demo here