javascript - 替换大括号内且未用引号引起来的字符

标签 javascript regex

我正在尝试将 = 替换为 :,其中它位于大括号中且不在单引号或双引号内(将 c# 构造函数转换为 javascript}:

{name = 'John', something = "a=1", another = 'b=1'}

结果将是:

{name : 'John', something = "a=1", another = 'b=1'}

我已经尝试了很多,这是我想出的最后一件事,但与我想要的完全相反(仅更改引号中的内容)

 ss = ss.replace(/({[^}]+([^'"]))(=)((?:[^'"])(?:[^}]+)})/g, '$1:$4');

这是结果:

{name = 'John', something = "a=1", another = 'b:1'}

还有这个

/({[^}]+([^'"]))(=)((?:\2)(?:[^}]+)})/g

完全不匹配

最佳答案

你可以试试这个,

var s = "{name = 'John', something = \"a=1\", another = 'b=1'}";

console.log(s.replace(/=(?=\s*(['"])((?!\1).)*\1)/g, ':'))

关于javascript - 替换大括号内且未用引号引起来的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38871830/

相关文章:

javascript - 在 .append JQuery 中使用双引号和单引号将变量作为参数传递给 onclick 函数

javascript - 用于在集合上添加事件的主干绑定(bind)

php - 验证新西兰电话号码的正则表达式

regex - 根据同一行中另一列的值拆分一个Pandas列?

java - 检查两个正则表达式是否匹配 java 中的相同字符串

python - 在 Python 中自动检测 C/C++ 循环并放置大括号

javascript - 使用 jQuery.Deferred 自定义 JS 确认模态以及基于按钮的返回值问题

javascript - 如何将 JavaScript 日期转换为不同的时区

javascript - 使变量值为正

php - 自然语言处理的正则表达式 "does not contain"模式问题