javascript - 从仅以逗号分隔的字符串中获取子字符串

标签 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

最佳答案

您可以使用 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', …]

Try it with RegEx101.

关于javascript - 从仅以逗号分隔的字符串中获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36019395/

相关文章:

javascript - react : cant handle async function on event

javascript - 如何通过 JS fetch() 突出显示单击的项目

c++ - 尝试计算一个像字符数组一样填充的字符串,但它只是计算字符串中的第一个字符

JavaScript 字符串连接替换第一个字符

javascript - 如何使用javascript逐字反转字符串中的单词?

javascript - 如何在 php 循环函数上应用 html/css

javascript - 无法获取 'this' 变量的 ID

python - 如何获取字符串中另一个字符周围的一些字符?

javascript - JavaScript 中的正则表达式 - 未正确过滤

javascript - 带有特殊字符的坏词过滤器