javascript - 如何在 JavaScript 中用 ":"分割字符串,但将各部分保留在引号中?

标签 javascript regex

我正在尝试创建一个正则表达式,它按 : 分割字符串,但不分割引号部分:

'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/

相关文章:

java - 在 Regex 与 Java 中匹配多个

正则表达式和 POST 在同一连接中

python - 以括号开头和结尾的正则表达式

javascript - 我的脚本需要刷新页面才能运行

javascript - 什么是 jQuery $.fly 插件?

javascript - 如何单击与 Cypress.io 的另一个 DIV 关联的链接?

javascript - 通过操作加载网页的 DOM 创建侧边栏

regex - 删除行而不是在 Eclipse 中替换为空行

javascript - RE 仅匹配不以 value="开头的字符串

javascript - 确保输入的名称不以空格结尾