正则expression式来捕获用逗号分隔的逗号分隔数字

我有一大堆的JavaScript片段,每个片段都包含一行:

function('some string without numbers', '123,71') 

我希望得到一个正则expression式来从第二个参数中拉出数字。 第二个参数可以包含任意数量的逗号分隔数字(包括零数字),所以以下全部都是有效的:

 '' '2' '17,888' '55,1,6000' ... 

正则expression式'(?:\d+|,)*'成功匹配引用的数字,但我不知道如何匹配每个数字。 在\d+周围放置一个捕获组似乎捕获了最后一个数字(如果存在的话 – 如果第二个参数只是'' ,则不起作用),但是其他的都不行。

在你的情况下,你可以匹配和捕捉单引号内的数字,然后用逗号分隔它们:

 var s = "function('some string without numbers', '123,71')"; var res = s.match(/'([\d,]+)'/) || ["", ""]; console.log(res[1].split(',')); 

如果你有一个variablesx的数字,像这样:

 var x = '55,1,6000'; 

然后用这个来得到数字列表:

 var array = x.split(','); 

如果逗号前后有空格,可以使用:

 var array = x.split('\s*,\s*'); 

或类似的东西。

有时候,比较容易匹配你不想要的东西和分裂的东西。