我正在寻找解析以下HTML的Javascript:
<p>random text random text random text random text</p>
<kbd><h2>Heading One</h2>Body text Body text Body text Body text</kbd>
<p>random text random text random text random text</p>
...并返回:
Heading One
换句话说,我想从<kbd>
标签中删除所有标签和正文。
任何想法都将不胜感激!
答案 0 :(得分:2)
var input = /* that HTML string here */;
var div = document.createElement('div');
div.innerHTML = input;
var h2 = div.getElementsByTagName('h2')[0];
var text = h2.innerText || h2.textContent;
alert(text); // alerts "Heading One"
document.createElement
innerHTML
element.getElementsByTagName
Node.textContent
(Quirksmode compatibility table)答案 1 :(得分:2)
正则表达式?
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)
答案 2 :(得分:0)
如果你包含jquery(jquery.com),你可以这样做:
var heading=$("h2").html();