Как заменить несколько элементов в строке? - PullRequest
6 голосов
/ 08 февраля 2011

Начальная строка:

I like [dogs], [cats], and [birds]

Требуется окончательный вывод:

I like <a href="#">dogs</a>, <a href="#">cats</a>, and <a href="#">birds</a>

Таким образом, в основном меняются элементы со скобками на ссылки.

Ответы [ 2 ]

13 голосов
/ 08 февраля 2011

Используйте это выражение:

var str = 'I like [dogs], [cats], and [birds]';
alert(str.replace(/\[(.+?)\]/g, '<a href="#">$1</a>'));
  • \[(.+?)\] запрашивает литерал [, чтобы лениво сопоставлять и захватывать что-либо, а затем сопоставлять литерал ]. Заменить захваченным материалом, заключенным в теги <a>.

  • Модификатор g означает глобальную замену, то есть находит и заменяет каждое совпадение, а не только первое.

jsFiddle Предварительный просмотр

6 голосов
/ 08 февраля 2011

Это простая замена строки.

function tagIt(source)
{
  return source.replace('[', '<a href="#">').replace(']', '</a>');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...