我在JavaScript函数中将以下HTML作为字符串:
<p>one</p> <p align='center'>two</p>
我想提取这个字符串:
"onetwo"
(显然没有引号)
你能否建议一些纯JavaScript代码(jQuery也可以...)来获取标签的内容?
答案 0 :(得分:5)
使用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 :(得分:1)
我制作了以下Regex来从XML标签中获取内容。 这仅适用于包含内容且后跟结束标记的标记。不会获取包含其他标记的标记的内容。 标记名称位于捕获组1中,标记内容位于捕获组2中。这将用于获取所有内容,包括标记内容中的&lt;,&gt;,“,”和&amp;
<([^\s>]+)\s?[^>]*>(.*)(?:<\/\1)>