删除嵌套的标记insisde<;a>;使用javascript regexp标记?

删除嵌套的标记insisde<;a>;使用javascript regexp标记?,javascript,html,regex,Javascript,Html,Regex,此函数用于删除任何 我想要另一个正则表达式,它可以消除任何标记及其所有内容建议使用基于dom的方法来处理html 使用jQuery: $('a').remove(); 尽管 这可能会在95%的时间内起作用 /<a[\s\S]*?<\/a>/ /您不能准确地使用正则表达式来处理HTML,因此应该使用DOM来处理 正如其他人所指出的,使用regexp解析HTML不是一个好主意,但是您的regexp需要一些小的修改才能完成您需要的工作 var s = '<a href=

此函数用于删除任何


我想要另一个正则表达式,它可以消除任何
标记及其所有内容

建议使用基于dom的方法来处理html

使用jQuery:

$('a').remove();
尽管

这可能会在95%的时间内起作用

/<a[\s\S]*?<\/a>/

/您不能准确地使用正则表达式来处理HTML,因此应该使用DOM来处理


正如其他人所指出的,使用regexp解析HTML不是一个好主意,但是您的regexp需要一些小的修改才能完成您需要的工作

var s = '<a href="http://feeds.feedburner.com/~ff/ardroid?a=AqChTdtuXxo:V799F6z5h7k:qj6IDK7rITs">\n\
   <img src="http://feeds.feedburner.com/~ff/ardroid?d=qj6IDK7rITs" border="0">\n\
</a><span></span>';
s.replace(/<a\b[^>]*>([^]*)<\/a>/im,"") // result will be <span></span>
var s='';

s、 用正则表达式替换(/

处理HTML通常是不可能正确的。为此使用DOM。查询元素,然后删除其所有子节点。据我所知,对于您的示例,它不起作用的唯一原因是因为您需要使用单行(全部点)修饰符。不是因为嵌套的标记,只是因为它在多行上。@OGHaza-JavaScript不支持
s
修饰符。必须使用
[\s\s]
之类的东西来实现相同的效果。@ridgerunner,这在JavaScript中是合法的,请尝试:
'hi'。匹配(/[^]/g)/[“h”,“i”]
当然我试过了,下面是FF 25.0.1:/cc@oghazaa上的结果,当然这是我在回答中包含的MDN中的确切文本:请注意,m多行标志不会改变点行为。因此,要匹配跨多行的图案,请使用字符集[^]可以使用,它将匹配任何字符,包括换行符。也在chrome 31.0上试用过,效果如预期。结果是:
@everplays fair play,在FF 25.0.1、chrome 31.0、Safari 7.0中对我很好,所有这些都在mac上。-哎哟,我把它搞混了,以为这是ridgerunner的回复。
/<a[\s\S]*?<\/a>/
$('a').contents().remove();
var s = '<a href="http://feeds.feedburner.com/~ff/ardroid?a=AqChTdtuXxo:V799F6z5h7k:qj6IDK7rITs">\n\
   <img src="http://feeds.feedburner.com/~ff/ardroid?d=qj6IDK7rITs" border="0">\n\
</a><span></span>';
s.replace(/<a\b[^>]*>([^]*)<\/a>/im,"") // result will be <span></span>