正则表达式删除<div>标记</div>之前和之后的所有内容

时间:2014-04-28 10:12:35

标签: javascript html

我在这个网站上看过参考文献。但我有这个问题,这是我的代码特有的。 我有一些像

这样的变量
viewSourceText = "koushik&nbsp;↵<div id="okokoko">some value </div>&nbsp;"

现在我要删除&#34;&amp; nbsp&#34;在标签之前和之后出现。所以输出将是这样的:

 viewSourceText = "koushik<div id="okokoko">some value </div>"

现在我的代码示例是:

viewSourceText.replace(/&nbsp;\n<div/g, "<div>");
viewSourceText.replace(/</div>&nbsp;/g, "</div>");

但工作不正常。

1 个答案:

答案 0 :(得分:0)

这是在没有正则表达式的DOM中执行此操作的正确方法:

function removeNbspAroundDivs (start) {
    var divs = start.getElementsByTagName("div");
    for (var i = 0, len = divs.length; i < len; i++) {
        var div = divs[i];
        var element = div;
        while ((element = element.previousSibling) && element.nodeType == 3) {
            element.nodeValue = element.nodeValue.replace(/[\u00A0\n]+$/, "");
            if (element.nodeValue.length > 0) break;
        }
        var element = div;
        while ((element = element.nextSibling) && element.nodeType == 3) {
            element.nodeValue = element.nodeValue.replace(/^[\u00A0\n]+/, "");
            if (element.nodeValue.length > 0) break;
        }
    }
};

Fiddle