我正在尝试创建一个正则表达式,它按 :
分割字符串,但不分割引号部分:
'a:b:c'.split(/*RegExNeeded*/) // => ['a','b','c']
'a:"1:2":d'.split(/*RegExNeeded*/) // => ['a','1:2', 'd']
我尝试过 ''.split(':')
但它不起作用,因为它也会拆分 1:2
。
最佳答案
您可以使用前瞻来确保冒号后面的双引号的数量是偶数(不是奇数):
var res = 'a:"1:2":d'.split(/:(?=[^"]*(?:"[^"]*"[^"]*)*$)/);
console.log(res.join());
关于javascript - 如何在 JavaScript 中用 ":"分割字符串,但将各部分保留在引号中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46956723/