我有一个字符串
'ABC':"sharath\'"
我想改为
"ABC":"sharath\'"
但是每当我想用双引号替换外部单引号时,它也会取代内部单引号。
var data = "'ABC':\"sharath\\'\"";
var data1 = data.replace(/\'/g,'\"');
你有什么决议可以为此建议吗?
答案 0 :(得分:2)
试试这个,但它不适用于多个转义字符
var data = "'ABC':\"sharath\\'\"";
data.replace(/([^\\]|^)\'/g,'$1\"')
答案 1 :(得分:0)
不知道这是否对你有所帮助,因为它有点脏,但是:
strSplitted = "'ABC':'sharath'".split(":");
newStr = strSplitted[0].replace(/(\')/g, "\"") + ":" + strSplitted[1];
答案 2 :(得分:0)
根据我的理解,你想要替换单引号,除非它们在双引号内。
s = " 'replace' : \" \'keep\' \" 'replace' \" '' keep '' \" ..."
> " 'replace' : " 'keep' " 'replace' " '' keep '' " ..."
s.replace(/'(?=([^"]*"[^"]*")*[^"]*$)/g, '"')
> " "replace" : " 'keep' " "replace" " '' keep '' " ..."