是否可以进行两次替换?

时间:2018-09-19 20:00:12

标签: javascript replace

是否可以进行两次替换?

var string = [link="<iframe"qwe"></iframe>"]

var output = string.replace(/[link="([^"]+)"]/g, '$1.replace(/"([^"]+)"/g, "'")');

我想要输出什么:

[link="<iframe'qwe'></iframe>"]

1 个答案:

答案 0 :(得分:1)

您可以在replace()中使用函数代替。然后,它可以对捕获组进行自己的替换。

var string = '[link="<iframe"qwe"></iframe>"]';
var output = string.replace(/link="([^\]]+)"]/g, (match, group1) => 
    'link="' + group1.replace(/"/g, "'") + '"]');
console.log(output);

还请注意,我必须更正您的正则表达式。 ([^"]+)应该为([^\]]+),以便它可以匹配包含双引号的字符串-您需要捕获该字符串以便替换双引号。

在第二个替换中,您要匹配",而不是[^"]+