如果找到模式,则使用JavaScript Regex删除某些字符串

时间:2011-05-13 06:36:07

标签: regex

让我说我有 输入字符串为

<div id="infoLangIcon"></div>ARA, DAN, ENGLISHinGERMAN, FRA<div id="infoPipe"></div><div id="infoRating0"></div><div id="infoPipe"></div><div id="infoMonoIcon"></div>

所以我想检查inforating是否为0,然后删除div和前一个div。输出是

<div id="infoLangIcon"></div>ARA, DAN, ENGLISHinGERMAN, FRA</div><div id="infoPipe"></div><div id="infoMonoIcon"></div

1 个答案:

答案 0 :(得分:1)

正则表达式不是你最好的选择。在HTML方面它是不可靠的。

我建议您使用DOM函数来执行此操作(我给了您一个Javascript示例,您还没有提供要使用的语言)。如果我理解正确,如果有一个ID为infoRating0的元素,您想删除它及其之前的兄弟。这个小片段应该这样做:

if (document.getElementById('infoRating0')) {
    var rating0=document.getElementById('infoRating0'),
         rParent=rating0.parentNode;
    rParent.removeChild(rating0.previousSibling);
    rParent.removeChild(rating0);    
}

此外,您的HTML无效。 您只能在HTML中使用ID 。您有两个具有相同ID(infoPipe)的div,您应该真正修复它们。改为使用类。

jsFiddle Demo