JavaScript中的条件拆分

时间:2018-08-28 19:15:56

标签: javascript

我需要在javascript中拆分字符串(无jquery)。 这基本上是从csv收到的。 所以,我有一个字符串,

string = '"abc, xyz, mno","lmn, pqr, bcd, jkl"';

请注意:引号中逗号的数量不是固定的,例如"abc, xyz, mno"也可以是"abc, xyz, mno, klm, ...""lmn, pqr, bcd, jkl"可以只是"lmn";即完全没有逗号。

我想将其拆分为

str1 = 'abc, xyz, mno';
str2 = 'lmn, pqr, bcd, jkl';

由于不确定的逗号数量,我无法使用string.split(",");进行此操作。

谢谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以在String#split方法中指定多个字符:

str.split('","')

演示:

let str = '"abc, xyz, mno","lmn, pqr, bcd, jkl"';

let result = str.split('","')
console.log(result);


如果要删除引号,只需添加

.map(s => s.replace('"',''))

演示:

let str = '"abc, xyz, mno","lmn, pqr, bcd, jkl"';

let result = str.split('","').map(s => s.replace('"',''));
console.log(result);

答案 1 :(得分:0)

最好使用正则表达式。但是,由于它们不是我最擅长的领域,因此可以结合使用String.split()Array.map()String.replace()来做到这一点:

let input = '"abc, xyz, mno","lmn, pqr, bcd, jkl"';

// Split where "," is found
// Create a new array that is a copy of the original
// but with \" removed from the elements
let output = input.split('","').map(s => s.replace('\"',''));

console.log(output);