这是我正在使用的模式
:
/^\d+((.\d+))?(,\d+((.\d+))?)*$/
支持
1.2,30.5,13.54
25.65
但我想要支持以下内容的模式
:
1.3,.3,4.5
.3,.4,.6
.2
1.3,5.6,.5
请您参考如下方法:
根据您给出的示例,您需要小数部分,因此您可以使用
/(\d*\.\d+),?/
这将匹配每个给定的示例。 如果您还想匹配不带小数点的数字,只需添加第二个匹配:
/(\d*\.\d+|\d+),?/
哦,对于 JavaScript,要添加“g”修饰符(用于全局搜索),您需要将其作为第二个参数添加到 RegExp 构造函数中:
re = new RegExp("(\d*\.\d+|\d+),?", "g");
示例:http://regex101.com/r/vL5aT0
好吧,我不知道你匹配字符串的目的是什么。如果您只是想验证它们并且它们应该与您的示例中完全相同,请使用:
/((\d*\.\d+|\d+),?)*(\d*\.\d+|\d+)$/
感谢 Elergy 向我指出这一点。 顺便说一句,Elergy 的正则表达式还匹配仅包含句点和逗号的无用行,例如
.3,.4,.5,,,,8,.,7.,.,.,.,4.,.,.,.,.9,.,,,4.,,1,,