JavaScript | Как получить содержимое заголовка H1 из строки?

Предположим, что у нас есть строка разметки HTML-документа и теперь нам нужно получить строковое значение, которое находится между открывающим и закрывающим тегами: <h1> и </h1>

Как это сделать?

Нам помогут регулярные выражения и их шаблоны. Для краткости я приведу строку:

var stroka = "bla bla bla <h1>Нужный заголовок</h1> tro lo lo"


Пишем регулярку:

/<h1>(.*?)<\/h1>/.exec(stroka)[1]
"Нужный заголовок"

В качестве границ шаблона регулярного выражения мы используем дизъюнкции строковых представлений тегов. Закрывающий тег </h1> мы вынуждены модифицировать в <\/h1> т. к. в противном случаем косая черта будет расценена как управляющий символ границы шаблона самого регулярного выражения.

Внутри круглых скобок у нас помещаются АТОМ в виде точки и квантификатор в виде префикса квантификатора с вопросом. Точка обозначает один любой символ из веб пространства. Звёздочка символизирует сопоставление символа АТОМА от нуля до бесконечности возможных повторений в строке. Символ вопроса ограничивает сопоставления до поиска наименьшей по длине последовательности между тегами, чтобы избежать ошибочного результата если в строке будет несколько заголовков H1.

Регулярное выражение для получения содержимого заголовка H1
Регулярное выражение для получения содержимого заголовка H1

 

Поделись записью