заменить строку с помощью регулярных выражений - PullRequest
2 голосов
/ 22 июля 2010

У меня есть текст внутри "textarea", и я пытался удалить текст между: <textarea></textarea>, используя функцию замены с некоторым регулярным выражением. вот что я сделал до сих пор:

x = '<TEXTAREA style="DISPLAY: none" id=test name=test>teeeeessst!@#$%&*(LKJHGFDMNBVCX</TEXTAREA>';

x.replace('/<TEXTAREA style="DISPLAY: none" id=test name=test>.*</TEXTAREA>/s','<TEXTAREA style="DISPLAY: none" id=test name=test></TEXTAREA>');

Ответы [ 3 ]

2 голосов
/ 22 июля 2010

Возможно, вы захотите что-то вроде этого:

x.replace(/(<textarea[^>]*>)[^<]+(<\/textarea>)/img, '$1$2');

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

1 голос
/ 22 июля 2010

Первая проблема в том, что у вас есть регулярное выражение внутри кавычек. Это должно быть просто / regex / без кавычек. Затем вам придется поставить обратную косую черту перед косой чертой в регулярном выражении.

/<TEXTAREA style="DISPLAY: none" id=test name=test>.*<\/TEXTAREA>/

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

0 голосов
/ 08 августа 2010

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

var re =/(\<[^<]+\>)[^<]+(<\/[^<]+>)/;

x = x.replace(re, '$1$2');

Вы можете использовать этот инструмент , чтобы пройти тест. Результат должен быть выведен в testarea.

...