去除字符串首尾的空格

  使用正则去除字符串首尾的空格。

  分享三个去除字符串首尾空格的方法。

  第一种,只调用一次replace方法

function trim(str){
       return (str || "").replace(/^\s+|\s+$/g,"");
}
    assert(trim(" #id div.class ") == "#id div.class", "Extra whitespace trimmed from a selector string");

  第二种,先替换开头的空格,再替换结尾的空格

function trim(str){
	return str.replace(/^\s\s*/,'').replace(/\s\s*$/, '');
}

  第三种,使用slice剔除尾部的空格

function trim(str){
        var str = str.replace(/^\s\s*/, ''),
            ws = /\s/,
            i = str.length;
        console.log(ws.test(str.charAt(--i)));
        while (ws.test(str.charAt(--i)));
        return str.slice(0, i + 1);
    }

  在大多数JavaScript库中使用了第一种解决方案。但是在处理文档的时候,第三种解决方案的性能更好。在匹配短字符串的情况下,方法1和方法2效率更高。

  方法一中的 assert函数是一个简单的单元测试,代码如下

function assert(value, desc){
        var li = document.createElement("li");
        li.className = value ? "pass" : "fail";
        li.appendChild(document.createTextNode(desc));
        //console.log(document.getElementById("results"))
        document.getElementById("results").appendChild(li);
    }

 

posted @ 2016-03-02 01:46  ipCoder  阅读(3657)  评论(0编辑  收藏  举报