我目前正在以html格式收到回复错误。它是字符串类型。
"<!DOCTYPE html>\r\n
<html>
<head>
<title>Data already exists</title>
</head>
</html>"
我想检索<title>
内的内容,对于上面的例子“数据已经存在”。任何人都可以建议一个适当的正则表达式来捕获该文本。
请感谢任何帮助!
答案 0 :(得分: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];
这是一个说明两种方法的DEMO。
答案 1 :(得分:2)
在正则表达式中解析html标签的基础知识就是这样。 http://jsbin.com/oqivup/1/edit
var text = /<(title)>(.+)<\/\1>/.exec(html).pop();
但对于更复杂的东西,我会考虑使用适当的解析器。
答案 2 :(得分: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" */