如果我有一个很长的字符串
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
答案 0 :(得分:4)
您可以使用String.split
,Array.slice
和Array.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', …]