Javascript, поиск по нескольким словам и замена сами по себе. Заменить только 1 из них в тексте, если найдено - PullRequest
0 голосов
/ 30 октября 2011

Мне нужно заменить несколько слов самостоятельно в тегах. Например

текст текст текст собака текст кот текст текст мышь.

Необходимо заменить на <b>dog</b> или <b>cat</b> или <b>mouse</b>, если совпадают. Мне нужно было заменить его один раз. Если он найдет слово собака означает заменить единственную собаку в <b>dog</ b>. И больше ничего. Даже если текст будет cat или mouse .

У меня есть код.

var str = "dog text cat text mouse",
    reg = /dog|cat|mouse/;
str = str.replace(reg, '<b>dog</b>').

Извините, это заменяет только один из <b>dog</b>. Помогите мне, пожалуйста.

1 Ответ

5 голосов
/ 30 октября 2011

Используйте флаг g, чтобы выполнить глобальный поиск, а не просто заменить первое вхождение.

Используйте скобки в регулярном выражении, чтобы поймать совпадение, и используйте $1 в качестве замены, чтобы использовать то, что вы поймали.

var str = "dog text cat text mouse";
var reg = /(dog|cat|mouse)/g;
str = str.replace(reg, '<b>$1</b>')
...