正则表达式,用于从html格式的字符串中提取文本

Regular expression to extract text from a string in html format

本文关键字:字符串 提取 取文本 格式 用于 html 正则表达式      更新时间:2023-09-26

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

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

我想检索<title>中的内容,例如上面的实例"数据已经存在"。有人能建议一个合适的正则表达式来捕捉文本吗。

请提供任何帮助,我们将不胜感激!

首先,您可以在没有regex的情况下通过创建一个伪元素来注入HTML:

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

但如果你真的坚持使用regex:

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

下面是演示这两种方法的DEMO

在regex中解析html标记的基本原理是这样的。http://jsbin.com/oqivup/1/edit

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

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

您可以使用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" */