Подтвердить что ты не робот

Функция trim() не работает в IE8?

Всякий раз, когда я использую функцию trim() в строке, она отлично работает с Chrome и Firefox, но я получаю сообщение об ошибке в IE8:

Объект не поддерживает это свойство или метод

Может ли кто-нибудь сказать мне, почему это происходит, и если есть работа вокруг?

4b9b3361

Ответ 1

IE8 не поддерживает функцию обрезки. Здесь a polyfill:

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

Ответ 2

если вы хотите добавить jquery и использовать $.trim(....), это сработает.

$.trim("  hello ");

предоставит вам

"hello"

Ответ 3

Internet Explorer только начал поддержку trim() с версии 9.

Для справки, MDN Polyfill для 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, '');
    };
  })();
}

и поддержка:

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

Ответ 4

Так как я использовал jQuery, с помощью @nemo и @karesh-a я придумал:

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