Как можно произвести замены только по захваченному регуляркой тексту? Есть файл, где нужно поменять содержимое определённых тегов. Пример:
var str = "<tr><div id="test1">testtestet</div></tr><tr><div id="test2">testtestet</div></tr><tr><div id="test3">testtestet</div></tr>";
str = str.replace(/(<tr><div id=\"test2\">)(.*?)(<\/tr><\/div>)/g, '$1$2$3);
Мне нужно в содержимом второй группы ($2
— testtestest
), допустим, заменить буквы t
На т
.
Используйте функцию обратного вызова в качестве аргумента замены:
var str = '<tr><div id="test1">testtestet</div></tr><tr><div id="test2">testtestet</div></tr><tr><div id="test3">testtestet</div></tr>';
str = str.replace(/(<tr><div id="test2">)([^]*?)(<\/div><\/tr>)/g, function($0,$1,$2,$3) {
return $1 + $2.replace(/t/g, 'т') + $3;
});
console.log(str);
[^]*?
в поправленном шаблоне находит любые 0 и более символов, как можно меньше, включая символы перехода на новую строку. Можно также использовать [\s\S]
, а в Chrome/Node.js уже можно и точку с модификатором s
использовать:
let str = '<tr><div id="test1">testtestet</div></tr><tr><div id="test2">test\ntest\net</div></tr><tr><div id="test3">testtestet</div></tr>';
str = str.replace(/(<tr><div id="test2">)(.*?)(<\/div><\/tr>)/sg, ($0,$1,$2,$3) => `${1}${$2.replace(/t/g, 'т')}${3}`);
console.log(str);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Всем приветЕсть необходимость переводить отдельные строки с одного языка на другой
Здраствуйте, подскажите, как правильно пользоваться GitHub? Через npm умею устанавливать пакеты, а как их правильно подключить к проекту не могу...
Здраствуйте, не получается подключить пакеты к проекту, в моем случае палитру к backend админкиВ админке использую Yii и Php Пробовал по инструкции...