我有一个带有标题的HTML元素,就像这样。 <details>Name of page</details>
如何制作正则表达式来搜索<details>
元素,但只返回文本Name of page
?
答案 0 :(得分:4)
您永远不应该使用正则表达式来解析HTML。 特别是,当您使用的环境提供触手可及的DOM解析器时。只需使用它:
var docpart = document.createElement("div"),
details, text = '';
docpart.innerHTML = "your <details>…HTML string…</details> here";
details = docpart.getElementsByTagName("details");
if (details.length > 0) {
text = details[0].textContent;
}
alert(text); // "…HTML string…"
由于您在评论中提到了jQuery,因此事情会变得更简单。这是上面的jQuery等价物:
var inputHTML = "your <details>…HTML string…</details> here";
var details = $("<div>", {html: inputHTML}).find("details").text();
答案 1 :(得分:3)
这个正则表达式:
/<details>(.*?)<\/details>/
$1
正则表达式变量将包含名称。