trim() function doesn't work in IE8?

前端 未结 4 1104
栀梦
栀梦 2020-12-25 11:35

Whenever I use the trim() function on a string, it works fine with Chrome and Firefox but I get an error in IE8 saying :

Object doesn\'t

相关标签:
4条回答
  • 2020-12-25 12:30

    Internet Explorer only started support for trim() from version 9.

    For reference, the MDN Polyfill for String.prototype.trim() is:

    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, '');
        };
      })();
    }
    

    and the support for it is:

    +--------+---------+----+-------+--------+
    | Chrome | Firefox | IE | Opera | Safari |
    +--------+---------+----+-------+--------+
    | All    | 3.5     |  9 | 10.5  |      5 |
    +--------+---------+----+-------+--------+
    
    0 讨论(0)
  • 2020-12-25 12:36

    Since, I was using jQuery, with the help of @nemo and @karesh-a I came up with:

    if(typeof String.prototype.trim !== 'function') {
         String.prototype.trim = function(){
            return jQuery.trim( this );
        }
    }
    
    0 讨论(0)
  • 2020-12-25 12:37

    IE8 doesn't support the trim function. Here's a polyfill:

    if(typeof String.prototype.trim !== 'function') {
      String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g, ''); 
      };
    }
    
    0 讨论(0)
  • 2020-12-25 12:37

    if you want you can add jquery and use $.trim(....) this will work..

    $.trim("  hello ");
    

    give you

    "hello"
    
    0 讨论(0)
提交回复
热议问题