2

String.prototype.trim()

ECMA 5提供了原生字符串方法trim()来去除字符串两端的空白。

语法

str.trim()

描述

  1. trim() 方法会删除一个字符串两端的空白字符。

  2. 在这个字符串里的空格包括所有的空格字符 (space, tab, no-break space 等)以及所有的行结束符(如 LF,CR)

  3. trim() 方法并不影响原字符串本身,它返回的是一个新的字符串。

示例

var orig = '   foo  ';
console.log(orig.trim()); // 'foo'

// 另一个.trim()例子,只从一边删除

var orig = 'foo    ';
console.log(orig.trim()); // 'foo'

trim的polyfill

trim()ECMA5提供的新方面,在一些旧环境中并不兼容。
下面是兼容性的trim()实现:

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };
}

这里需要解释的是,'\uFEFF''\xA0'

某些软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM),转码后是“\uFEFF”,因此我们在读取时需要自己去掉这些字符。

\xA0”其实就是HTML中常见的“&nbsp”


Tammy
111 声望14 粉丝

不易匠心方得始终