„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum ersetzt die Ersetzungsmethode von JavaScript nur die erste Instanz?

Warum ersetzt die Ersetzungsmethode von JavaScript nur die erste Instanz?

Veröffentlicht am 04.11.2024
Durchsuche:244

Why Does JavaScript\'s Replace Method Only Replace the First Instance?

Warum JavaScript-Replace nur die erste Instanz ersetzt: Erkunden des RegExp-Flags

Bei Verwendung der JavaScript-Ersetzungsmethode zum Suchen und Ersetzen einer Zeichenfolge durch eine andere , können Sie auf das Verhalten stoßen, bei dem nur die erste Instanz der Zielzeichenfolge ersetzt wird. Dieses Verhalten tritt auf, weil das Standardverhalten von Ersetzen darin besteht, einen einzelnen, nicht globalen Such- und Ersetzungsvorgang durchzuführen.

Globales Ersetzen: Das RegExp-Flag

Um alles zu ersetzen Instanzen einer Zielzeichenfolge in einer Zeichenfolge müssen Sie das „globale“ Flag (g) im regulären Ausdruck angeben, der in der Ersetzungsmethode verwendet wird. Dieses Flag gibt an, dass der Such- und Ersetzungsvorgang über die gesamte Zeichenfolge erfolgen und jedes Vorkommen der Zielzeichenfolge ersetzen soll.

Zum Beispiel in Ihrem Code:

var date = $('#Date').val(); // e.g., "12/31/2009"
var id = 'c_'   date.replace("/", ''); // c_1231/2009 (wrong)

Um alle Vorkommen des „/“-Zeichens zu ersetzen, müssen Sie das „globale“ Flag angeben:

var id = 'c_'   date.replace(new RegExp("/", "g"), ''); // c_12312009 (correct)

Alternativ können Sie die kürzere Syntax verwenden:

var id = 'c_'   date.replace(/\//g, ''); // c_12312009 (correct)

Durch Angabe des „globalen“ Flags ersetzt die Ersetzungsmethode jedes Schrägstrichzeichen in der Datumszeichenfolge, was zu einer korrekten Ausgabe führt.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729641136 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3