„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 beschränkt die Ersetzungsfunktion von JavaScript Ersetzungen nur auf die erste Instanz?

Warum beschränkt die Ersetzungsfunktion von JavaScript Ersetzungen nur auf die erste Instanz?

Veröffentlicht am 11.11.2024
Durchsuche:711

Why Does JavaScript\'s Replace Function Limit Replacements to the First Instance Only?

Warum die Ersetzungsfunktion von Javascript nur die erste Instanz ersetzt

Bei der Verwendung von replace() in JavaScript kann es vorkommen, dass nur ersetzt wird die erste Instanz einer Zielzeichenfolge. Diese offensichtliche Inkonsistenz ist auf das Standardverhalten der Funktion zurückzuführen.

Das Verhalten von replace() verstehen

Standardmäßig findet und ersetzt replace() das erste Vorkommen einer angegebenen Teilzeichenfolge innerhalb einer Zeichenfolge. Wenn Sie alle Instanzen ersetzen möchten, müssen Sie das g-Flag (global) im regulären Ausdruck angeben.

Beispiel: Setzen des g-Flags

Betrachten Sie das Beispiel in der Frage bereitgestellt:

var date = $('#Date').val(); // Gets value "12/31/2009"
var id = 'c_'   date.replace("/", ''); // Replaces only the first "/", resulting in "c_1231/2009"

Um alle Vorkommen des Schrägstrichs (/) zu ersetzen, verwenden Sie das g-Flag:

var id = 'c_'   date.replace(new RegExp("/", "g"), ''); // Replaces all "/" with "", resulting in "c_12312009"

Alternativ können Sie eine einfachere Syntax verwenden:

var id = 'c_'   date.replace(/\//g, ''); // Equivalent to the previous line

Durch Setzen des g-Flags gleicht der reguläre Ausdruck alle Vorkommen der Zielzeichenfolge ab und ersetzt sie durch den angegebenen neuen Wert. Dieses Verhalten stellt sicher, dass alle Instanzen wie vorgesehen ersetzt werden.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729641438 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