如何实现一个trim函数

367 阅读1分钟

首先实现的方法特别多种多样,首当其冲简单的肯定是正则实现方法。但是如果不用正则的话,怎么实现呢? 使用 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 : '';
}