Chaque fois que j'utilise la fonction trim()
sur une chaîne, cela fonctionne bien avec Chrome et Firefox, mais j'obtiens une erreur dans IE8:
L'objet ne prend pas en charge cette propriété ou méthode
Quelqu'un peut-il me dire pourquoi cela se produit et s'il y a un moyen de contourner le problème?
IE8 ne supporte pas la fonction trim . Voici un polyfill:
if(typeof String.prototype.trim !== 'function') {
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
};
}
si vous voulez, vous pouvez ajouter jquery et utiliser $ .trim (....) Cela fonctionnera ..
$.trim(" hello ");
te donner
"hello"
Internet Explorer n'a démarré que la prise en charge de trim()
à partir de la version 9.
Pour référence, le MDN Polyfill pour String.prototype.trim()
est:
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, '');
};
})();
}
et le support car c’est:
+--------+---------+----+-------+--------+
| Chrome | Firefox | IE | Opera | Safari |
+--------+---------+----+-------+--------+
| All | 3.5 | 9 | 10.5 | 5 |
+--------+---------+----+-------+--------+
Depuis, jutilisais jQuery, avec l’aide de @nemo et @ karesh-a, j’ai trouvé:
if(typeof String.prototype.trim !== 'function') {
String.prototype.trim = function(){
return jQuery.trim( this );
}
}