Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   регулярные выражения (https://javascript.ru/forum/events/23746-regulyarnye-vyrazheniya.html)

syegorius 04.12.2011 17:32

регулярные выражения
 
и снова всем сдрасте

подскажите пожалуйста как реализовать такое условие:

проверить есть ли "<", за которыми не идет "br" и есть ли ">", перед которыми нет "/" или "br" или "br[\s]*/".

полазил на javascript.ru и как бы первую часть вроде бы как получилось реализовать таким способом

str.match(/<(?!br)+/i)


а вот как указать найти все ">", перед которыми нет "/" или "br" или "br[\s]*/" так и не нашел...

заранее спасибо

Pavel M. 05.12.2011 12:51

правильно я понял, надо выяснить есть ли в строке теги, кроме br ?

demoniqus 06.12.2011 11:35

!(/<\s*br/i.test(str))
- для первого условия. Не стоит забывать, что могут быть паразитные пробелы между < и br, которые интерпретатор прощает, а вот регулярное выражение не простит... А отрицание в самом начале позволяет несколько упростить регулярное выражение. И не забываем про регистр.
((!(/br\s*>/.test(str))) || (!(/br\s*\/\s*>/.test(str))) || (!(\/\s*>/.test(str))))
- это для второго случая. Если не можешь написать большое сложное выражение, пиши несколько маленьких более простых.

syegorius 07.12.2011 04:06

Цитата:

Сообщение от Pavel M. (Сообщение 140864)
правильно я понял, надо выяснить есть ли в строке теги, кроме br ?

ага, тока теперь слегка там кое че переделал и теперь нужно удалить в строке все теги кроме span и br

Цитата:

Сообщение от demoniqus (Сообщение 141006)
((!(/br\s*>/.test(str))) || (!(/br\s*\/\s*>/.test(str))) || (!(\/\s*>/.test(str))))

спасибо за помощь, но немного не то

Pavel M. 07.12.2011 10:34

Цитата:

Сообщение от syegorius
теперь нужно удалить в строке все теги кроме span и br

аналог функции php strip_tags
http://phpjs.org/functions/strip_tags
должно помочь


Часовой пояс GMT +3, время: 19:20.