如何用"分割字符串:"但是在JavaScript中用引号保留部分?

时间:2017-10-26 14:15:44

标签: javascript regex

我试图创建一个正则表达式,用:分割字符串,但不要拆分引用的部分:

'a:b:c'.split(/*RegExNeeded*/) // => ['a','b','c']
'a:"1:2":d'.split(/*RegExNeeded*/) // => ['a','1:2', 'd']

我已经尝试了''.split(':'),但它无效,因为它也会分割1:2

1 个答案:

答案 0 :(得分:4)

您可以使用向前看以确保冒号后面的双引号数是偶数(不是奇数):

var res = 'a:"1:2":d'.split(/:(?=[^"]*(?:"[^"]*"[^"]*)*$)/);
console.log(res.join());