Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по RegExp (https://javascript.ru/forum/misc/58198-vopros-po-regexp.html)

yazz 09.09.2015 10:33

Вопрос по RegExp
 
Есть строка:
text = '<a>tekst 1</a><a>tekst 2</a><a>tekst 3</a>'
(укороченый вариант)
Есть реджекс:
text.replace(new RegExp('<a>(.+)</a>', 'g'), '<a>$1 надпись</a>');

Реджекс возвращает:
"<a>tekst 1</a><a>tekst 2</a><a>tekst 3 надпись</a>"

А мне надо что-бы возвращал так:
"<a>tekst 1 надпись</a><a>tekst 2 надпись</a><a>tekst 3 надпись</a>"

Как перенастроить реджекс?

tsigel 09.09.2015 10:38

var text = '<a>tekst 1</a><a>tekst 2</a><a>tekst 3</a>'
alert(text.replace(new RegExp('<a>(.*?)</a>', 'g'), '<a>$1 надпись</a>'));

yazz 09.09.2015 11:16

Отлично, рабатает!
Ещё вопрос. Как можно пропустить $1 через функцию tokyryl() (функция - конвертер латиницы в кириллицу)

У меня кажется неправильно
<script src="http://xn--b1aq.lark.ru/t.js"></script>
<script>
var text = '<a>tekst 1</a><a>tekst 2</a><a>tekst 3</a>';
text.replace(new RegExp('<a>(.*?)</a>', 'g'), '<a>'+tokyryl('$1')+' надпись</a>');
</script>

tsigel 09.09.2015 11:22

https://javascript.ru/String/replace
Вас интересует вариант replace(reg, function)

yazz 09.09.2015 12:04

Спасибо большое, всё получилось :dance:


Часовой пояс GMT +3, время: 03:33.