Javascript Regex: Получить HTML-теги - PullRequest
0 голосов
/ 03 апреля 2011

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

/\<+[a-zA-Z0-9\=\"\s]+\>+.+\<\/+[a-zA-Z0-9]+\>/gi

, которое соответствует полному HTML-тегу, например:

<p>this is a paragraph</p>

Но проблема в том, что он соответствует всем элементам как одно соответствие

<div><p>this is a paragraph</p></div>

Но я бы хотел разделить все элементы HTML.

Примечание. Теги HTML находятся в строке, а не в DOM.

ДоРешение регулярных выражений Я попытался создать новый элемент div и добавил строку в виде innerHTML.Но не работает должным образом, я не знаю, почему ...

Поэтому я ищу решение REGEX, которое решает эту проблему с одним совпадением.

Спасибо

Ответы [ 2 ]

1 голос
/ 03 апреля 2011

Регулярные выражения не подходят для обработки HTML.Как вы упоминаете, HTML не является частью DOM

Примечание. Теги HTML находятся в строке, отсутствующей в DOM.

Вы можете использовать JQuery для сборкиобъект из HTML и использовать селекторы DOM / traversion для работы с ним:

$(myHTMLString).find('p')...
1 голос
/ 03 апреля 2011

Замена внутреннего +.+ на +[^<]+ не позволит ему сопоставить всю строку, но регулярные выражения не являются правильным выбором для обработки строк, содержащих вложенные компоненты.Для этого вам следует использовать парсер.

Регулярные выражения - просто неправильный инструмент для работы здесь.

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