从字符串获取子字符串仅用逗号分隔

时间:2016-03-15 18:35:13

标签: javascript regex string

如果我有一个很长的字符串

8718584449,19630000,24,990,10218828289,840000,3,18,8914098889,2120000,4,108,8720551129,3690000,18,42

我可以获得

的索引

8718584449,10218828289,8914098889,8720551129

通过循环,我将如何获得子字符串

19630000,24,990
840000,3,18
2120000,4,108
3690000,18,42

来自那个长串?

基本上,对于每4个数字,只有当我知道该4个数字子串的第一个数字时,才能动态地获得第2个,第3个和第4个数字?例如,如果我没有10218828289那么我不想得到840000,3,18

1 个答案:

答案 0 :(得分:4)

您可以使用String.splitArray.sliceArray.join来避免使用正则表达式。

var s = '8718584449,19630000,24,990,10218828289,840000,3,18,8914098889,2120000,4,108,8720551129,3690000,18,42';
s.split(',').slice(1, 4).join(',');    // => '19630000,24,990'
s.split(',').slice(5, 8).join(',');    // => '840000,3,18'
s.split(',').slice(9, 12).join(',');   // => '19630000,24,990'
s.split(',').slice(13, 16).join(',');  // => '840000,3,18'

如果出于某种原因,您想使用正则表达式:

var s = '8718584449,19630000,24,990,10218828289,840000,3,18,8914098889,2120000,4,108,8720551129,3690000,18,42';
s.match(/\d+,((?:\d+,){2}(?:\d+))/g);  // => ['19630000,24,990', …]

Try it with RegEx101.