Javascript修剪了换行符

时间:2012-09-17 12:07:31

标签: javascript jquery html

假设我在<div>标记中包含以下代码:

<div id="something"><br /> <br />Hello<br />World<br><br />   </div>

我怎么能在JS方面trim以便它会删除所有空格和HTML换行符,所以我得到如下内容:

<div id="something">Hello<br />World</div>

2 个答案:

答案 0 :(得分:1)

使用正则表达式替换,它将是

return html.replace(/\s*(<br ?\/>\s*)+/g, "<br />").replace(/^<br \/>|<br \/>$/g, "");

在DOM中,您需要遍历div的所有子项并删除emtpy空格和背靠背br元素:

var el = document.getElementById("something");
for (var i=0, remove=true; i<el.childNodes.length; ) {
    var child = el.childNodes[i];
    if (child.nodeType == 3 && child.isElementContentWhitespace)
        el.removeChild(child);
    else if (child.nodeType == 1) {
        if (child.nodeName.toLowercase() == "br" && remove)
            el.removeChild(child);
        else
            // run DOM tree recursively?
        remove = true;
    } else {
       remove = false;
       i++;
    }
}
if (el.lastChild.nodeType == 1 && el.lastChild.nodeName.toLowercase() == "br")
    el.removeChild(el.lastChild);

答案 1 :(得分:0)

您可以使用

删除字符串开头和结尾的空格和<br />节点
x = x.replace(/^( |<br \/>)*(.*?)( |<br \/>)*$/,"$2");

但你必须将它应用于div元素的innerHTML