Обработка множественных JavaScript заменяющих соответствий - PullRequest
4 голосов
/ 18 июня 2009

У меня есть следующая строка:

This *is* a *test*!

Я хочу выделить слова, окруженные символами * (в этом примере «is» и «test»).

У меня есть следующий код JavaScript:

var data = "This *is* a *test*!";
return data.replace(/\*(.*)\*/g, <b>$1</b>);

Когда строка возвращается, я получаю следующее:

This <b>is* a *test</b>!

Как я могу изменить шаблон или базовый код, чтобы выполнить замену так, как я хочу?

Ответы [ 2 ]

5 голосов
/ 18 июня 2009

ТАК испортил мой HTML ...

var result = "This *is* a *test*!".replace(/\*(.*?)\*/gi, "<b>$1</b>");
2 голосов
/ 18 июня 2009

Вам нужно сделать шаблон нежадным, добавив оператор? После *:

var data = "This *is* a *test*!";
return data.replace(/\*(.*?)\*/g, "<b>$1</b>");

Вот ссылка на JavaScript RegExp из Центра разработчиков Mozilla .

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