Ich habe versucht, .trim()
eine Zeichenfolge in einem meiner JavaScript-Programme anzuwenden . Unter Mozilla funktioniert es einwandfrei, aber ein Fehler wird angezeigt, wenn ich es in IE8 versuche. Weiß jemand, was hier los ist? Kann ich es trotzdem im IE zum Laufen bringen?
Code:
var ID = document.getElementByID('rep_id').value.trim();
Fehleranzeige:
Nachricht: Das Objekt unterstützt diese Eigenschaft oder Methode nicht Zeile: 604 Char: 2 Code: 0 URI: http: //test.localhost/test.js
javascript
internet-explorer
trim
Jin Yong
quelle
quelle
"whatever ".trim()
versuchen Sie das auf IE8.trim()
und traute meinen Augen nicht, als ich herausfand, dass es nicht unterstützt wurde. Danke, dass du das geklärt hast. Ich wollte dasselbe fragen, wie Sie gefragt haben.Antworten:
Fügen Sie den folgenden Code hinzu, um der Zeichenfolge Trimmfunktionen hinzuzufügen.
quelle
replace(/^\s\s*/, '').replace(/\s\s*$/, '')
diesreplace(/^\s+|\s+$/, '')
laut einem Benchmark etwa dreimal schneller sein sollte als in Firefox 2: blog.stevenlevithan.com/archives/faster-trim-javascriptreplace(/^\s+|\s+$/, '')
nur führende oder nachfolgende Leerzeichen entfernt werden. Dies ist nicht das Verhalten, das von einer Trimmfunktion erwartet wird. Wenn Sie sowohl führende als auch nachfolgende Leerzeichen entfernen möchten, müssen Sie diese verwendenreplace(/^\s+|\s+$/g, '')
.Es sieht so aus, als ob diese Funktion im IE nicht implementiert ist. Wenn Sie jQuery verwenden, können Sie
$.trim()
stattdessen ( http://api.jquery.com/jQuery.trim/ ) verwenden.quelle
jQuery:
Jemand verwendet,
$("#mycomment").val().trim();
aber dies funktioniert nicht im IE.quelle
Leider gibt es keine browserübergreifende JavaScript-Unterstützung für trim ().
Wenn Sie jQuery (mit der Methode .trim ()) nicht verwenden, können Sie Zeichenfolgen mithilfe der folgenden Methoden Trimmunterstützung hinzufügen:
quelle
https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String/Trim
Dies ist eine ziemlich neue Ergänzung zu Javascript und wird vom IE nicht unterstützt.
quelle
Ich hatte ein ähnliches Problem, als ich versuchte, einen Wert aus einer Eingabe zu kürzen und dann zu fragen, ob er gleich nichts ist:
Dies warf jedoch einen Schraubenschlüssel in die Arbeit für IE6 - 8. Ärgerlicherweise hatte ich versucht, es so zu variieren:
Die Verwendung der Trimmmethode von jQuery funktioniert jedoch in allen Browsern perfekt für mich.
quelle
Ich habe Code geschrieben, um die Trimmfunktionalität zu implementieren.
LTRIM (links trimmen):
RTRIM (rechts trimmen):
TRIM (beidseitig trimmen):
ODER
Es steht auch ein regulärer Ausdruck zur Verfügung, den wir verwenden können.
Nützliche Erklärung
quelle
\t
,\r
,\n
und so weiter . Nurspaces
. Regexp ist besser, wenn Sie nicht wirklich die Mühe machen möchten, alles manuell zu handhaben.Wir können offiziellen Code aus dem Internet erhalten! Verweisen Sie darauf:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim
Für mehr: Ich habe gerade festgestellt, dass es ein js-Projekt zur Unterstützung von EcmaScript 5 gibt: https://github.com/es-shims/es5-shim Durch Lesen des Quellcodes können wir mehr über Trim erfahren .
quelle
Ich glaube nicht, dass es
trim()
im JavaScript-Standard eine native Methode gibt . Vielleicht liefert Mozilla eine, aber wenn Sie eine im IE wollen, müssen Sie sie selbst schreiben. Es gibt einige Versionen auf dieser Seite .quelle
Ich hatte das gleiche Problem in IE9. Als ich jedoch die unterstützte HTML-Version mit dem folgenden Tag in der ersten Zeile vor dem deklarierte
Das Problem wurde behoben.
quelle
Dies liegt an einem Tippfehler getElementBy ID . Ändern Sie es in getElementById
quelle
quelle
Ich habe gerade herausgefunden, dass der IE die Unterstützung nicht mehr unterstützt
trim()
, wahrscheinlich nach einem kürzlich durchgeführten Windows-Update. Wenn Sie Dojo verwenden, können Sie es verwendendojo.string.trim()
, es funktioniert plattformübergreifend.quelle
Dieses Problem kann durch den IE verursacht werden, der den Kompatibilitätsmodus auf Intranetsites verwendet. Es gibt zwei Möglichkeiten, dies zu beheben. Sie können entweder den IE aktualisieren, um den Kompatibilitätsmodus auf Ihrem lokalen Computer nicht zu verwenden (in IE11: Extras-> Einstellungen für die Kompatibilitätsansicht -> Deaktivieren Sie die Option Intranetsites in der Kompatibilitätsansicht anzeigen).
Besser noch, Sie können die Meta-Tags auf Ihrer Webseite aktualisieren. Hinzufügen:
Was bedeutet das? Der IE wird angewiesen, den neuesten Kompatibilitätsmodus zu verwenden. Weitere Informationen finden Sie in MSDN: Festlegen älterer Dokumentmodi
quelle