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
因此上述正则匹配一空白开头或者以空白结尾的字符。