28

文字列でこの関数を使用するtrim()と、ChromeとFirefoxで正常に機能しますが、IE8で次のようなエラーが発生します。

オブジェクトはこのプロパティまたはメソッドをサポートしていません

なぜこれが発生するのか、回避策があるかどうかを誰かに教えてもらえますか?

4

4 に答える 4

84

IE8はトリム機能をサポートしていません。これがポリフィルです:

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  };
}
于 2012-06-27T05:14:48.920 に答える
39

必要に応じて、jqueryを追加して$ .trim(....)を使用できます。これは機能します。

$.trim("  hello ");

あなたに与える

"hello"
于 2012-06-27T05:11:10.370 に答える
2

Internet Explorerはtrim()、バージョン9からのみサポートを開始しました。

参考までに、MDNPolyfillString.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, '');
    };
  })();
}

そしてそれのサポートは次のとおりです。

+--------+---------+----+-------+--------+
| Chrome | Firefox | IE | Opera | Safari |
+--------+---------+----+-------+--------+
| All    | 3.5     |  9 | 10.5  |      5 |
+--------+---------+----+-------+--------+
于 2015-03-12T16:10:13.700 に答える
0

それ以来、私は@nemoと@kareshの助けを借りてjQueryを使用していました-a私は思いついた:

if(typeof String.prototype.trim !== 'function') {
     String.prototype.trim = function(){
        return jQuery.trim( this );
    }
}
于 2017-03-05T09:46:54.860 に答える