这是我正在使用的模式:

/^\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,, 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!