首先实现的方法特别多种多样,首当其冲简单的肯定是正则实现方法。但是如果不用正则的话,怎么实现呢? 使用 charAt() subString() indexOf()组合实现。先从头遍历,把前面的空格去掉,在从后面遍历,把后面的空格去掉。最后还要判断是否本身就是一个空格字符串 ' ' .因为空字符走不进去下面的两段遍历。
String.prototype.trim = function() {
var str = this,
whitespace = ' ';
for (var i = 0,len = str.length; i < len; i++) {
if (whitespace.indexOf(str.charAt(i)) === -1) {
str = str.substring(i);
break;
}
}
for (i = str.length - 1; i >= 0; i--) {
if (whitespace.indexOf(str.charAt(i)) === -1) {
str = str.substring(0, i + 1);
break;
}
}
return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}