3

I am currently getting response error in html format. It is of type string.

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

I wanted to retrieve the content inside the <title>, for above instance "Data already exists". Can anybody suggest a appropriate regular expression to capture that text.

Please any help is appreciated!

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];

これは、両方のアプローチを示すDEMOです。

于 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 に答える