在javascript中出现的前两个逗号处分割字符串

时间:2020-02-24 09:01:03

标签: javascript split comma

让我们考虑定义为的变量 str

var str = "A, B, C, D, E, F"

要用逗号分割字符串,我要做:

str = str.split(",")
console.log(str)
// => ["A", "B", "C", "D", "E", "F"]

所以,如果必须在前两个逗号中将其拆分,以使输出变为:

,该怎么办?
// => ["A", "B", "C, D, E, F"]

4 个答案:

答案 0 :(得分:5)

您可以使用正则表达式匹配第一个非逗号部分,然后匹配第二个非逗号部分,然后匹配其他任何内容(字符串的其余部分):

var str = "A, B, C, D, E, F";
const [, ...matches] = str.match(/(\w+), (\w+), (.+)/);
console.log(matches);

您也可以使用split和负向后搜索来做到这一点,但并非到处都支持负向后搜索(并且在极少数环境中支持可变长度后向搜索):

var str = "A, B, C, D, E, F";
console.log(
  str.split(/(?<=^[^,]+(?:,[^,]+)?), /)
);

答案 1 :(得分:3)

您可以拆分字符串,保留拆分分隔符,并构建新的零件和连接零件数组。

function split(string, limit) {
    var parts = string.split(/(,\s*)/),
        result = [],
        i = 0;
    
    while (i < limit * 2) {
        result.push(parts[i]);
        i += 2;
    }
    result.push(parts.slice(limit * 2).join(''));
    return result;
}

console.log(split('A, B, C, D, E, F, G', 2));

答案 2 :(得分:0)

您可以尝试一下,它将返回您需要的结果

-var yourString =“ A,B,C,D,E,F”;

-var formattedString = yourString.split(“,”)。join(“ \ n”);

答案 3 :(得分:0)

可以通过以下方式使用splitreduce

const str = 'A, B, C, D, E, F';

const res = str
  .split(', ')
  .reduce((strs, str) => {
    // get three parts of an array
    let [partOne, partTwo, partThree] = strs;
    // if the first two parts isn't fill out
    if (!partTwo) {
      return [...strs, str];
    } else {
      // fill out the third part,
      // which can be 'undefined' at start.
      // if it is not 'undefined',
      // concatenate the string
      return partThree ? [partOne, partTwo, `${partThree}, ${str}`] : [...strs, str];
        }
  }, [])
 console.log(res);