Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как на JS убрать все тэги regexp'ом?

439
10 марта 2008 года
Rexulnik
217 / / 09.02.2005
Всем привет!
Есть ли на JavaScript аналог функции strip_tags?
Или если нету как правильно составить regexp для того чтобы убрать все тэги в строке?
Зарание спасибо.
10K
10 марта 2008 года
FAngel
77 / / 13.09.2006
Хотел поигратся, полез за пдфкой с этими самыми regexp и случайно нашел готовое решение :)Принимайте:
\<(/?[^\>]+)\> - само регулярное выражение.
А что-бы убрать, так у String есть метод Replace. Там, если не ошибаюсь, первым параметром регулярное выражение, а вторым на что заменять совпадение. Я бы поставил "".
352
11 марта 2008 года
skywalker
694 / / 10.02.2006
Интересная задачка.
А такой паттерн не проще:
 
Код:
\<.*\>
?
353
11 марта 2008 года
Nixus
840 / / 04.01.2007
Цитата: skywalker
Интересная задачка.
А такой паттерн не проще:
 
Код:
\<.*\>
?



Такой работать не будет. По-хорошему нужно так

 
Код:
\<.*?\>

и добавит ключ s.
2
11 марта 2008 года
squirL
5.6K / / 13.08.2003
наиболее правильно так:
s/<[^>]*?>// - это гораздо быстрее. но и этот вариант - разберет только простейший HTML код
439
11 марта 2008 года
Rexulnik
217 / / 09.02.2005
Так как всё таки лучше?))) Скорость не особо важна это ж клиент)))
2
11 марта 2008 года
squirL
5.6K / / 13.08.2003
ну в общем случае - используй мой вариант. однако обрати внимание, что он канает только для простейших HTML тэгов. если внутри тэга есть > - нужно регексп усложнять. впрочем для большинства ситуаций хватает и такого решения
439
11 марта 2008 года
Rexulnik
217 / / 09.02.2005
Вот так надо писать?
text = "<b>gfdgfdgdf</b>";
text.replace("s/<[^>]*?>//", ""); ?
Это вообще ничего не заменяет...
И что значит простейшие тэги? В смысле без параметров?
2
11 марта 2008 года
squirL
5.6K / / 13.08.2003
я не знаю что такое text.replace )) скорее всего надо так:

text.replace("<[^>]*?>", "");

возможно - надо экранировать < - типа

text.replace("\<[^>]*?\>", "");

простейшие тэги - это которые не содержать > между <>, например :)
439
11 марта 2008 года
Rexulnik
217 / / 09.02.2005
блин чегото работает только для первых...
re = /\<.*?\>/;
tmps = text.replace(re, "");
re = /\<\/.*?\>/;
tmp = tmps.replace(re, "");
убирает только первые встречания а остальные нет...
353
11 марта 2008 года
Nixus
840 / / 04.01.2007
Что-то в этом роде:
 
Код:
text.replace(/<[^>]*>/g, '');
439
11 марта 2008 года
Rexulnik
217 / / 09.02.2005
всё допёр))) надо в конце ставить g
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог