使用正则表达式替换外部span-tag

时间:2012-11-15 20:34:08

标签: javascript regex

使用javascript替换方法,我想找到这个字符串:

<span class="memberX"><span class="member19">text</span></span>    <---X is any number

最终输出应为:

<span class="member19">text</span>

基本上我想删除外部span,它可以有一个memberX类,其中X是任意数字。

2 个答案:

答案 0 :(得分:3)

如果这是在DOM中,您不需要正则表达式。你应该只操纵DOM本身。

var spans = document.querySelectorAll('span[class^=member] > span[class^=member]');

for (var i = 0; i < spans.length; i++) {
    spans[i].parentNode.parentNode.insertBefore(spans[i], spans[i].parentNode);
    spans[i].parentNode.removeChild(spans[i].nextSibling);
}

答案 1 :(得分:0)

  1. 首先阅读RegEx match open tags except XHTML self-contained tags

  2. 阅读文档对象模型(简称DOM)。

  3. 使用JS提供的DOM函数来遍历DOM树。

  4. 编写一个遍历DOM树的遍历算法。

  5. 对于您遇到的每个span元素,请检查它是否只有一个子节点,也就是一个范围。如果是这种情况,如果符合您的情况,您应该将孩子span替换为父span