我需要一个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])+)?))?
答案 0 :(得分:0)
你的正则表达式是正确的,你只需要锚定它以确保你匹配整个字符串,而不仅仅是它的一部分。
简化可能的内容,它变为:
^\d+(?:,\d+)?(?:-\d+(?:,\d+)?)?$
\d
是[0-9]
的缩写,(?:...)
是非捕获组,^$
是匹配字符串开头和结尾的锚点(确保没有其他内容)比你想要的更多。
请参阅demo here。