如何基于每个四个逗号将字符串拆分为数组?

时间:2019-07-05 03:11:03

标签: javascript jquery

所以我正尝试根据逗号数量将字符串拆分为数组,该怎么办?说我的弦是这样的;

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(', ');

但是这会基于每个逗号将字符串添加到数组中。

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:4)

我将使用.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);

答案 1 :(得分:1)

split位于,的字符串。然后创建一个通用的chunk函数,该函数将传递的数组分成使用Array.from()

指定的size

const str = "abc, def, ghi, jkl, mno, pqr, stu, vwx, yza",
      splits = str.split(/,\s*/),
      chunk = (arr, size) => Array.from({ length: Math.ceil(arr.length / size) },
                              (_, i) => arr.slice(i * size, (i + 1) * size))

console.log(JSON.stringify(chunk(splits, 4)))
console.log(JSON.stringify(chunk(splits, 3)))

答案 2 :(得分:0)

您还可以使用split和reduce来实现此目的:

    ArrayList<Integer> newList = new ArrayList<Integer>();       
    for (Integer element : list) { 
        if (!newList.contains(element)) {       
            newList.add(element); 
        } 
    }