让我们考虑定义为的变量 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"]
答案 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)
可以通过以下方式使用split
和reduce
:
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);