繁体   English   中英

正则表达式以html格式从字符串中提取文本

[英]Regular expression to extract text from a string in html format

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

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

我想检索<title>的内容,对于上面的例子“Data already exists”。 任何人都可以建议一个适当的正则表达式来捕获该文本。

请任何帮助表示赞赏!

首先,你可以通过创建一个虚拟元素来注入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];

这是一个说明这两种方法的DEMO

在正则表达式中解析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" */

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM