Javascript регулярное выражение заменить между закрывающими и открывающими тегами - PullRequest
0 голосов
/ 06 июля 2011

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

</p><p>

И добавьте между ними запятую, например:

</p>,<p>

Не обращайте внимания на тот факт, что это не хороший HTML, он имеет смысл для меня, хотя!

Я попробовал это, но, похоже, не сработало:

str.replace(/<\/p><p>/g, "</p>,<p>");

Есть идеи? Спасибо:)

Ответы [ 5 ]

2 голосов
/ 06 июля 2011

Я попробовал это, но, похоже, не сработало:

str.replace(/<\/p><p>/g, "</p>,<p>");

replace возвращает aновая строка с результатом, она не изменяет строку, в которой вы ее вызвали.Так что это будет:

    str = str.replace(/<\/p><p>/g, "</p>,<p>");
//  ^^^^^^
0 голосов
/ 06 июля 2011

Моя вина. Это работает. Я забыл, что у меня есть идентификаторы в каждом теге p, поэтому просто нужно найти это:

/<\/p><p/g

Спасибо за все ответы, хотя!

0 голосов
/ 06 июля 2011

Строки в JavaScript являются неизменными.То есть содержимое строки не может быть изменено.Следовательно, при использовании метода replace он не может заменить содержимое, а просто возвращает новую строку с новым содержимым.Вам нужно будет сохранить новую строку в обязательной переменной.

, например,

str = str.replace(/<\/p><p>/g, "</p>,<p>");

Ответы с alert будут работать, потому что новая строка передается в alert функция.Сама строка не изменяется.

0 голосов
/ 06 июля 2011

Ваш код работает просто отлично: http://jsfiddle.net/eBkhR/

0 голосов
/ 06 июля 2011

Это работает для меня:

alert("Some </p><p> to replace".replace(/<\/p><p>/g, "</p>,<p>"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...