我试图创建一个正则表达式,用:
分割字符串,但不要拆分引用的部分:
'a:b:c'.split(/*RegExNeeded*/) // => ['a','b','c']
'a:"1:2":d'.split(/*RegExNeeded*/) // => ['a','1:2', 'd']
我已经尝试了''.split(':')
,但它无效,因为它也会分割1:2
。
答案 0 :(得分:4)
您可以使用向前看以确保冒号后面的双引号数是偶数(不是奇数):
var res = 'a:"1:2":d'.split(/:(?=[^"]*(?:"[^"]*"[^"]*)*$)/);
console.log(res.join());