Javascript Заменить текст в строке - PullRequest
1 голос
/ 17 июня 2010

У меня проблемы с получением регулярного выражения для замены всех вхождений строки в строке.

**What to replace:**
href="/newsroom

**Replace with this:**
href="http://intranet/newsroom

Это не работает:

str.replace(/href="/newsroom/g, 'href="http://intranet/newsroom"');

Есть идеи?

РЕДАКТИРОВАТЬ

Мой код:

str = '<A href="/newsroom/some_image.jpg">photo</A>';
str = str.replace('/href="/newsroom/g', 'href="http://intranet/newsroom"');
document.write(str);

Спасибо, Теган

Ответы [ 3 ]

3 голосов
/ 17 июня 2010

Три вещи:

  • Вам необходимо присвоить результат обратно переменной, в противном случае результат просто отбрасывается.
  • Вам нужно экранировать косую черту в регулярном выражении.
  • Вам не нужна последняя двойная кавычка в строке замены.

Попробуйте вместо этого:

str = str.replace(/href="\/newsroom/g, 'href="http://intranet/newsroom')

Результат:

<A href="http://intranet/newsroom/some_image.jpg">photo</A>
2 голосов
/ 17 июня 2010

Вы должны убежать от косой черты, вот так:

str.replace(/href="\/newsroom\/g, 'href=\"http://intranet/newsroom\"');

Обратите внимание, что я также избежал кавычек в вашем аргументе замены.

1 голос
/ 18 июня 2010

Это должно работать

 str.replace(/href="\/newsroom/g, 'href=\"http://intranet/newsroom\"')

UPDATE:
Это заменит только данную строку:

str = '<A href="/newsroom/some_image.jpg">photo</A>';
str = str.replace(/\/newsroom/g, 'http://intranet/newsroom');
document.write(str);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...