JavaScript的字符串去空格

String的原型方法trim()

trim() 方法会删除一个字符串两端的空白字符。在这个字符串里的空格包括所有的空格字符 (space, tab, no-break space 等)以及所有的行结束符(如 LF,CR)。

var str = "  hello world    ";
alert(str.trim());  //"hello world"

而trim()方法不兼容旧浏览器,结合网上的一些答案给出兼容方案:

function myTrim(str) {
    if(String.prototype.trim) {
        return str.trim();
    }
    return str.replace(/^\s+(.*?)\s+$/g, "$1");
    //or
    //return str.replace(/^\s+/, "").replace(/\s+$/, "");
}

上面的方法是删除字符串两端的空白,那么如果要删除整个字符串中的空白又该怎么解决?

删除字符串中的所有空白符

如果在字符串中仅存在空格,没有制表符等空白符,那么可以使用split()和join()方法来去空白:

var str = "   hello  world   !";
var result = str.split(" ").join("");
console.log(result);  //helloworld!

而如果存在了制表符等空白符,上面的方法便无法去除:

var str = "\t hello  world  !";
var result = str.split(" ").join("");
console.log(result);  //    helloworld!

那么如何来解决?在这里我使用正则表达式:

var str = "\t hello  world  !";
var result = str.replace(/\s+/g, "");
console.log(result);  //helloworld!

如此一来就顺利的解决了问题,从这些可以看出正则表达式的强大,而这也只是其冰山一角,熟练地使用正则表达式能够帮助我们快速地解决一些处理字符串的问题。

你可能感兴趣的:(JavaScript)