Javascript正则表达式匹配字符串,但只显示文本

时间:2011-10-25 10:06:58

标签: javascript html regex

我有一个带有标题的HTML元素,就像这样。 <details>Name of page</details>

如何制作正则表达式来搜索<details>元素,但只返回文本Name of page

2 个答案:

答案 0 :(得分:4)

您永远不应该使用正则表达式来解析HTML。 特别是,当您使用的环境提供触手可及的DOM解析器时。只需使用它:

var docpart = document.createElement("div"),
    details, text = '';

docpart.innerHTML = "your <details>&hellip;HTML string&hellip;</details> here";

details = docpart.getElementsByTagName("details");

if (details.length > 0) {
  text = details[0].textContent;
}

alert(text);  // "…HTML string…"

由于您在评论中提到了jQuery,因此事情会变得更简单。这是上面的jQuery等价物:

var inputHTML = "your <details>&hellip;HTML string&hellip;</details> here";
var details = $("<div>", {html: inputHTML}).find("details").text();

答案 1 :(得分:3)

这个正则表达式:

/<details>(.*?)<\/details>/

$1正则表达式变量将包含名称。