我需要一个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])+)?))?
您的正则表达式是正确的,您只需要锚定它以确保匹配整个字符串,而不仅仅是其中的一部分。
简化了可能的内容,它变成了:
^d+(?:,d+)?(?:-d+(?:,d+)?)?$
d
是[0-9]
的缩写,(?:...)
是非捕获组,^$
是匹配字符串开头和结尾的锚点(确保除了您想要的之外没有其他内容(。
请参阅此处的演示。