J'ai essayé d'appliquer .trim()
à une chaîne dans l'un de mes programmes JavaScript. Cela fonctionne bien sous Mozilla, mais une erreur s'affiche lorsque je l'essaye dans IE8. Quelqu'un sait-il ce qui se passe ici? Est-il possible de le faire fonctionner dans IE?
code:
var ID = document.getElementByID('rep_id').value.trim();
affichage d'erreur:
Message: l'objet ne prend pas en charge cette propriété ou cette méthode Ligne: 604 Caractère: 2 Code: 0 URI: http: //test.localhost/test.js
javascript
internet-explorer
trim
Jin Yong
la source
la source
"whatever ".trim()
essayez cela sur IE8.trim()
, et je n'en croirais pas mes yeux quand j'ai compris qu'elle n'était pas prise en charge. Merci d'avoir clarifié cela. J'allais demander la même chose que vous avez demandé.Réponses:
Ajoutez le code suivant pour ajouter une fonctionnalité de découpage à la chaîne.
la source
replace(/^\s\s*/, '').replace(/\s\s*$/, '')
devrait être environ 3 fois plus rapide quereplace(/^\s+|\s+$/, '')
dans Firefox 2, selon une référence: blog.stevenlevithan.com/archives/faster-trim-javascriptreplace(/^\s+|\s+$/, '')
ne supprime que les espaces de début ou de fin, ce qui n'est pas le comportement attendu d'une fonction de découpage. Si vous souhaitez supprimer les espaces de début et de fin, vous devez utiliserreplace(/^\s+|\s+$/g, '')
.Il semble que cette fonction ne soit pas implémentée dans IE. Si vous utilisez jQuery, vous pouvez utiliser à la
$.trim()
place ( http://api.jquery.com/jQuery.trim/ ).la source
jQuery:
Quelqu'un utilise
$("#mycomment").val().trim();
mais cela ne fonctionnera pas sur IE.la source
Malheureusement, il n'y a pas de prise en charge JavaScript par plusieurs navigateurs pour trim ().
Si vous n'utilisez pas jQuery (qui a une méthode .trim ()), vous pouvez utiliser les méthodes suivantes pour ajouter un support de découpage aux chaînes:
la source
https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String/Trim
Il s'agit d'un ajout assez récent à javascript, et ce n'est pas pris en charge par IE.
la source
J'ai eu un problème similaire en essayant de couper une valeur à partir d'une entrée et de demander ensuite si elle était égale à rien:
Cependant, cela a jeté une clé dans les travaux pour IE6 - 8. Assez ennuyeusement, j'ai essayé de le varier comme suit:
Cependant, en utilisant la méthode de découpage de jQuery, cela fonctionne parfaitement pour moi dans tous les navigateurs.
la source
J'ai écrit du code pour implémenter la fonctionnalité Trim.
LTRIM (trim à gauche):
RTRIM (trim à droite):
TRIM (couper les deux côtés):
OU
L'expression régulière est également disponible que nous pouvons utiliser.
Explication utile
la source
\t
,\r
,\n
et tel. Seulementspaces
. Regexp est meilleur si vous n'avez pas vraiment envie de tout faire manuellement.Nous pouvons obtenir le code officiel sur Internet! Référez ceci:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim
pour en savoir plus: Je viens de découvrir qu'il existe un projet js pour la prise en charge d'EcmaScript 5: https://github.com/es-shims/es5-shim en lisant le code source, nous pouvons obtenir plus de connaissances sur le trim.
la source
Je ne pense pas qu'il existe une
trim()
méthode native dans la norme JavaScript. Peut-être que Mozilla en fournit un, mais si vous en voulez un dans IE, vous devrez l'écrire vous-même. Il existe quelques versions sur cette page .la source
J'ai eu le même problème dans IE9 Cependant, lorsque j'ai déclaré la version html prise en charge avec la balise suivante sur la première ligne avant le
Le problème a été résolu.
la source
C'est à cause de l'erreur de faute de frappe getElementBy ID . Remplacez-le par getElementById
la source
la source
Je viens de découvrir qu'IE cesse de prendre en charge
trim()
, probablement après une récente mise à jour de Windows. Si vous utilisez dojo, vous pouvez l'utiliserdojo.string.trim()
, cela fonctionne sur plusieurs plateformes.la source
Ce problème peut être provoqué par IE en utilisant le mode de compatibilité sur les sites intranet. Il existe deux façons de résoudre ce problème, vous pouvez soit mettre à jour IE pour ne pas utiliser le mode de compatibilité sur votre ordinateur local (dans IE11: Outils-> Paramètres d'affichage de compatibilité -> Décocher Afficher les sites intranet dans l'affichage de compatibilité)
Mieux encore, vous pouvez mettre à jour les balises META dans votre page Web. Ajouter à:
Qu'est-ce que ça veut dire? Il indique à IE d'utiliser le dernier mode de compatibilité. Plus d'informations sont disponibles dans MSDN: Spécification des modes de document hérités
la source