簡體   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