Javascript trim()函数不使用';你不在IE8工作吗?

Javascript trim()函数不使用';你不在IE8工作吗?,javascript,internet-explorer,internet-explorer-8,Javascript,Internet Explorer,Internet Explorer 8,每当我在字符串上使用trim()函数时,Chrome和Firefox都可以正常工作,但我在IE8中遇到一个错误,它说: 对象不支持此属性或方法 有人能告诉我为什么会发生这种情况,以及是否有解决办法吗?如果需要,可以添加jquery并使用$.trim(..)这将起作用 $.trim(" hello "); 给你 "hello" IE8不支持微调功能。 这是一个polyfill: if(typeof String.prototype.trim !== 'function') { Strin

每当我在字符串上使用
trim()
函数时,Chrome和Firefox都可以正常工作,但我在IE8中遇到一个错误,它说:

对象不支持此属性或方法


有人能告诉我为什么会发生这种情况,以及是否有解决办法吗?

如果需要,可以添加jquery并使用$.trim(..)这将起作用

$.trim("  hello ");
给你

"hello"

IE8不支持微调功能。 这是一个polyfill:

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

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

参考资料如下:

这方面的主要原因是:

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

从那时起,我使用jQuery,在@nemo和@karesh-a的帮助下,我想出了:

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

谢谢你的回答——对于已经使用jQuery的网站来说,这是首选。无意冒犯,但我认为只有在我们已经使用javascript的情况下,才应该这样做。另外,只为一个函数向站点添加jquery看起来不太好。上面的解决方案看起来更优雅。它很简单,IE8不支持它:这个链接对这个bug很有帮助。[[1]:您能解释一下这个代码段在做什么吗?主要是这个if语句是关于什么的。这个代码段首先检查trim函数是否已定义(typeof String.prototype.trim!=='function')。如果未定义,它将定义一个用正则表达式简单替换的函数
if(typeof String.prototype.trim !== 'function') {
     String.prototype.trim = function(){
        return jQuery.trim( this );
    }
}