首页 > 解决方案 > 如何根据每四个逗号将字符串拆分为数组?

问题描述

所以我试图根据逗号的数量将一个字符串拆分成一个数组,我该怎么做?说我的字符串是这样的;

var string = "abc, def, ghi, jkl, mno, pqr, stu, vwx, yza";

我如何拆分它以使其返回;

var array = ["abc, def, ghi, jkl,", "mno, pqr, stu, vwx,", "yza"]

这甚至可能吗?

现在我正在使用var array = string.split(', ');

但这会根据每个逗号将字符串添加到数组中。

任何帮助,将不胜感激!

标签: javascriptjquery

解决方案


我会使用.match而不是split- 匹配(非逗号,后跟逗号或字符串结尾)4次:

var string = "abc, def, ghi, jkl, mno, pqr, stu, vwx, yza";
const result = string.match(/(?:[^,]+(?:,|$)){1,4}/g);
console.log(result);

  • (?:[^,]+(?:,|$)){1,4}- 重复 1 到 4 次:
    • [^,]+- 非逗号字符
    • (?:,|$)- 逗号或字符串的结尾

如果要确保第一个字符不是空格,请\S在开头查找(非空格字符):

var string = "abc, def, ghi, jkl, mno, pqr, stu, vwx, yza";
const result = string.match(/(?=\S)(?:[^,]+(?:,|$)){1,4}/g);
console.log(result);


推荐阅读