繁体   English   中英

用Javascript RegEx匹配HTML标签的内容

[英]Match HTML tag's content with a Javascript RegEx

我在JavaScript函数中将以下HTML作为字符串:

<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()

工作示例: http : //jsbin.com/osidi3

我做了以下正则表达式来从XML标签中获取内容。 这仅适用于具有内容且后跟结束标签的标签。 不会获取包含其他标签的标签的内容。 标签名称位于捕获组1中,标签内容位于捕获组2中。这将用于获取所有内容,包括标签内容中的<,>,“,”和&。

<([^\s>]+)\s?[^>]*>(.*)(?:<\/\1)>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM