我想保留<em>
和<strong>
标记的嵌套并删除内部嵌套标记。无论如何这可能与正则表达式有关吗?
<strong>Hello <em>World</em></stong>
应该成为
<strong>Hello World</stong>
答案 0 :(得分:0)
如果只删除<em>
内的任何<strong>
标记,您可以使用以下javascript代码来获得所需的结果。
(function(){
var a = document.getElementsByTagName("strong");
for(var i=0;i<a.length;i++){
a[i].innerHTML = a[i].innerText; //Removing any innerHTML here.
}
})();
答案 1 :(得分:0)
因为正则表达式无法识别dom,所以我建议找其他方法,比如使用dom操作函数。
例如,<Strong>
,<strong>
,<sTrong>
,<strong class="a">
,<strong clAss = ' a'>
...都是有效的dom。你甚至可以省略结束标签或拼错它(就像你的例子!)。你不能用正则表达式处理这一切。
但是,如果你已经准备好了像你的例子一样完美解析的dom,这个正则表达式可能会有用。
// single line only
"<strong>Hello <em>World</em></strong>".replace(/^<strong>(.*)<em>(.*)<\/em>(.*)<\/strong>$/gi, "<strong>$1$2$3</strong>");
>> <strong>Hello World</strong>