trim()函数在IE8中不起作用?

时间:2012-06-27 05:07:29

标签: javascript internet-explorer internet-explorer-8

每当我在字符串上使用trim()函数时,它适用于Chrome和Firefox,但我在IE8中收到错误说:

  

Object不支持此属性或方法

任何人都可以告诉我为什么会这样,如果有解决方法吗?

4 个答案:

答案 0 :(得分:82)

IE8不支持修剪功能。 这是一个polyfill:

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

答案 1 :(得分:39)

如果你想要你可以添加jquery并使用$ .trim(....)这将工作..

$.trim("  hello ");

给你

"hello"

答案 2 :(得分:2)

Internet Explorer仅从版本9开始支持trim()

作为参考,MDN Polyfill for String.prototype.trim()是:

if (!String.prototype.trim) {
  (function() {
    // Make sure we trim BOM and NBSP
    var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
    String.prototype.trim = function() {
      return this.replace(rtrim, '');
    };
  })();
}

并且support为:

+--------+---------+----+-------+--------+
| Chrome | Firefox | IE | Opera | Safari |
+--------+---------+----+-------+--------+
| All    | 3.5     |  9 | 10.5  |      5 |
+--------+---------+----+-------+--------+

答案 3 :(得分:0)

因为我在@nemo和@ karesh-a的帮助下使用了jQuery,我想出了:

if(typeof String.prototype.trim !== 'function') {
     String.prototype.trim = function(){
        return jQuery.trim( this );
    }
}