1

有人可以帮我编写一个包含此 p 内容的正则表达式代码:

<p class="bc_shirt_name">101</p>

谢谢

4

4 回答 4

2

当您的标记格式良好时,最好使用DOMParser 。

var parser = new DOMParser();
var doc = parser.parseFromString('<p class="bc_shirt_name">101</p>', "application/xml");
var contents = doc.documentElement.textContent;

这几乎适用于任何 XML,而不仅仅是 XHTML。我也可以用这个<tag>foo</tag>

这是一个演示:http: //jsfiddle.net/vEeXX/

于 2012-12-09T19:23:40.370 回答
2

您的浏览器应该能够解析 HTML,不是吗?

var div = document.createElement("div");
div.innerHTML = '<p class="bc_shirt_name">101</p>';
var p = div.getElementsByTagName("p")[0];
var html = p.innerHTML; // content as html
var text = p.textContent || p.innerText; // content as plain text
于 2012-12-09T19:36:45.953 回答
1

有很多方法,但这是原始问题所要求的使用正则表达式的方法:

var html = "<stuff><p class=\"bc_shirt_name\">101</p></stuff>";

var matches = html.match(/<p\s+class="bc_shirt_name">[\S\s]*?<\/p>/gi);
    matches = matches[0].replace(/(<\/?[^>]+>)/gi, ''); // Strip HTML tags?

alert(matches);​

JSFiddle 演示:http: //jsfiddle.net/tGTb7/

于 2012-12-09T19:34:38.897 回答
0
var str = "<p class="bc_shirt_name">101</p>";
var match, result = "", 
regex = /<p\s+class="bc_shirt_name">(.*?)<\/p>/ig;

while (match = regex.exec(str)) {
  result += match[1]; 
  }
 alert(result);

结果变量将包含所需的数据。希望这可以帮助。

于 2012-12-09T19:39:58.920 回答