我有以下的HTML作为我的JavaScript函数的字符串:匹配HTML标记与内容的JavaScript正则表达式
<p>one</p> <p align='center'>two</p>
我想提取这个字符串:(显然不带引号)
"onetwo"
能否请您提供一些纯粹的JavaScript代码(jQuery也行......)来获取标签的内容?
我有以下的HTML作为我的JavaScript函数的字符串:匹配HTML标记与内容的JavaScript正则表达式
<p>one</p> <p align='center'>two</p>
我想提取这个字符串:(显然不带引号)
"onetwo"
能否请您提供一些纯粹的JavaScript代码(jQuery也行......)来获取标签的内容?
使用jQuery你并不需要一个复杂的正则表达式,你可以很容易地解析HTML和使用DOM:
var s = "<p>one</p> <p align='center'>two</p>";
var wrapper = $('<div />').html(s);
var text = wrapper.text();
在这种情况下$(s).text()
本来也工作,但如果你有空闲就会失败第一级文本(例如<p>1</p>2
),所以我通常避免它。
注意,这里的结果是"one two"
(不"onetwo"
),因为你有<p>
标签之间的空间。
如果这是一个问题,您可以根据您的确切需要,例如使用wrapper.children().text()
或wrapper.find('p').text()
。
+1好玩的技巧.. – 2011-02-28 11:21:03
不使用正则表达式确实是这样做的关键:P – Exelian 2011-02-28 12:12:49
我做了以下的正则表达式来抓住从XML标签内容。 这只适用于包含内容且后面有结束标签的标签。不会获得包含其他标签的标签的内容。 标签名称是捕获组1和标签内容是捕获组2.这将努力获得的所有内容,包括<,>,”,“和&标签内容的内部。
<([^\s>]+)\s?[^>]*>(.*)(?:<\/\1)>
不要使用正则表达式http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – RichardTheKiwi 2011-02-28 11:20:29
+1好评。他现在会悔改..:D – 2011-02-28 11:22:00