Regex?
var s = "<p>random text</p>\n" +
"<kbd><h2>Heading One</h2>Body text</kbd>\n" +
"<p>random text</p>";
s.match(/<h2>(.*?)<\/h2>/)[1] // == "Heading One"
Это соответствует первой группе как самая короткая строка (.*?)
между <h2>...</h2>
.
Вы можете найти все совпадения, используя опцию g
.
s.match(/<h2>(.*?)<\/h2>/g) // == ["<h2>Heading One</h2>"]
Обратите внимание, что группы недоступны.
Для многострочного контента между тегами используйте
s.match(/<tag>[\s\S]*?<\/tag>/ig)