繁体   English   中英

替换大括号中但不包含在引号中的字符

[英]Replace a character which is in braces and not enclosed in quotes

我正在尝试将=替换= :放在大括号中,并且不在单引号或双引号内(将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',某物=“ a = 1”,另一个='b:1'}

和这个

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

根本不匹配

你可以试试看

 var s = "{name = 'John', something = \\"a=1\\", another = 'b=1'}"; console.log(s.replace(/=(?=\\s*(['"])((?!\\1).)*\\1)/g, ':')) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM