正则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*');
或类似的东西。
有时候,比较容易匹配你不想要的东西和分裂的东西。