首先,我想对比我更有经验的人说,必须在正则表达式中完成。由于奇怪的情况,无法访问DOM解析器。
所以我有一个完整的HTML / XHTML字符串,除了链接之外,我想删除它的所有内容。基本上只有<a>
标签很重要。我需要标签来完整地保存他们的信息,所以href,target,class等等,如果它是一个自终止标签或它有一个单独的结束标签,它应该工作。即<a />
或<a></a>
感谢任何帮助人员!
答案 0 :(得分:2)
当然,您可以在Firefox扩展中解析HTML。请查看HTML to DOM,尤其是second和第三种方式。
它可能看起来更复杂,但它比正则表达式更不易出错。
只要您引用了已解析的内容,您只需致电ref.getElementsByTagName('a')
即可完成。
答案 1 :(得分:1)
result = subject.match(/<a[^<>]*?(?:\/>|>(?:(?!<\/a>).)*<\/a>)/ig);
为您提供HTML源代码中所有<a>
标记的数组(即使是非自动关闭的标记,这些标记也是非法的,但您明确要求这些标记)。这还够吗?
<强>解释强>
<a # Match <a
[^<>]*? # Match any characters besides angle brackets, as few as possible
(?: # Now either match
/> # /> (self-closed tag)
| # or
> # a closing angle bracket
(?: # followed by...
(?!</a>) # (if we're not at the closing tag)
. # any character
)* # any number of times
</a> # until the closing tag
)
答案 2 :(得分:0)
正则表达式看起来像这样
/\<\a.*[\/]{0,1}>(.*<\/\a>){0,1}/gm