3

我目前收到 html 格式的响应错误。它是字符串类型。

"<!DOCTYPE html>\r\n
<html>
  <head>
    <title>Data already exists</title>
  </head>
</html>"

我想检索里面的内容<title>,例如上面的“数据已经存在”。任何人都可以建议一个适当的正则表达式来捕获该文本。

请任何帮助表示赞赏!

4

3 回答 3

5

首先,您可以在没有正则表达式的情况下通过创建一个虚拟元素来注入 HTML:

var s = "your_html_string";
var dummy = document.createElement("div");
dummy.innerHTML = s;
var title = dummy.getElementsByTagName("title")[0].innerText;

但是如果你真的坚持使用正则表达式:

var s = "your_html_string";
var title = s.match(/<title>([^<]+)<\/title>/)[1];

这是一个演示这两种方法的演示。

于 2012-08-29T01:19:59.707 回答
2

在正则表达式中解析 html 标签的基础是这样的。http://jsbin.com/oqivup/1/edit

var text = /<(title)>(.+)<\/\1>/.exec(html).pop();

但是对于更复杂的东西,我会考虑使用适当的解析器。

于 2012-08-29T01:25:41.277 回答
1

您可以使用以下方法解析它DOMParser()

var parser=new DOMParser(),
    doc=parser.parseFromString("<!DOCTYPE html><html><head><title>Data already exists</title></head></html>","text/html");

doc.title; /* "Data already exists" */
于 2012-08-29T01:27:12.260 回答