javascript - scripts - La función trim() no funciona en IE8?
enable javascript (4)
Cada vez que uso la función trim()
en una cadena, funciona bien con Chrome y Firefox, pero aparece un error en IE8 que dice:
El objeto no admite esta propiedad o método
¿Alguien puede decirme por qué sucede esto y si hay una solución alternativa?
Desde entonces, estaba usando jQuery, con la ayuda de @nemo y @ karesh-a se me ocurrió:
if(typeof String.prototype.trim !== ''function'') {
String.prototype.trim = function(){
return jQuery.trim( this );
}
}
IE8 no es compatible con la función de recorte. Aquí hay un polyfill:
if(typeof String.prototype.trim !== ''function'') {
String.prototype.trim = function() {
return this.replace(/^/s+|/s+$/g, '''');
};
}
Internet Explorer solo comenzó a admitir trim()
desde la versión 9.
Como referencia, el MDN Polyfill para String.prototype.trim()
es:
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, '''');
};
})();
}
y el support para esto es:
+--------+---------+----+-------+--------+
| Chrome | Firefox | IE | Opera | Safari |
+--------+---------+----+-------+--------+
| All | 3.5 | 9 | 10.5 | 5 |
+--------+---------+----+-------+--------+
si lo desea, puede agregar jquery y usar $ .trim (....) esto funcionará ..
$.trim(" hello ");
darte
"hello"