Можно ли сделать двойную замену? - PullRequest
0 голосов
/ 19 сентября 2018

Если возможна двойная замена?

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

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

что я хочу получить:

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

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете использовать функцию в качестве замены в replace().Затем он может выполнить собственную замену в группе захвата.

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

Обратите внимание, что мне пришлось исправить ваше регулярное выражение.([^"]+) должно быть ([^\]]+), чтобы оно могло соответствовать строке, содержащей двойные кавычки - вам нужно захватить ее, чтобы заменить двойные кавычки.

А во второй замене вы хотите сопоставить ", а не [^"]+

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...