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 support this property or method
Can anyone tell me why this happens and if there is a work around?
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 support this property or method
Can anyone tell me why this happens and if there is a work around?
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, '');
};
}
if you want you can add jquery and use $.trim(....) this will work..
$.trim(" hello ");
give you
"hello"
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 |
+--------+---------+----+-------+--------+
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 );
}
}