是否可以进行两次替换?
var string = [link="<iframe"qwe"></iframe>"]
var output = string.replace(/[link="([^"]+)"]/g, '$1.replace(/"([^"]+)"/g, "'")');
我想要输出什么:
[link="<iframe'qwe'></iframe>"]
答案 0 :(得分:1)
您可以在replace()
中使用函数代替。然后,它可以对捕获组进行自己的替换。
var string = '[link="<iframe"qwe"></iframe>"]';
var output = string.replace(/link="([^\]]+)"]/g, (match, group1) =>
'link="' + group1.replace(/"/g, "'") + '"]');
console.log(output);
还请注意,我必须更正您的正则表达式。 ([^"]+)
应该为([^\]]+)
,以便它可以匹配包含双引号的字符串-您需要捕获该字符串以便替换双引号。
在第二个替换中,您要匹配"
,而不是[^"]+