JavaScript缺少一个移除字符串末端空白的方法,我们可以自己写一个这样的方法:

String.prototype.trim = function(){

         return this.replace('/^\s+|\s+$/g', '');

}

——来自Crockford先生的《Javascript:The Good Parts》

解释一下replace方法:

string.replace(searchValue,replaceValue)方法对string进行查找和替换的操作,并返回一个新的字符串。参数searchValue可以是一个字符串或一个正则表达式对象。如果他是一个字符串或者是一个不带g标志的正则表达式则searchValue只会在第一次出现的地方被替换,如果searchValue是一个带有g标志的正则表达式,那么其的所有匹配都会被替换。

解释一下正则:

^  :匹配开始,$匹配结束,因此'  abc'、'abc  '的空格会被匹配,‘a bc’的空格不会被匹配。

\s  :匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]

+  :匹配前面的子表达式一次或多次。

x|y:匹配x或者y

因此上述正则匹配一空白开头或者以空白结尾的字符。