Heim >Web-Frontend >js-Tutorial >Warum ersetzt die Ersetzungsmethode von JavaScript nur die erste Instanz?
Warum JavaScript-Replace nur die erste Instanz ersetzt: Erkundung 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 hinweg erfolgen soll und jedes Vorkommen der Zielzeichenfolge ersetzen soll.
Zum Beispiel in Ihrem Code:
<code class="javascript">var date = $('#Date').val(); // e.g., "12/31/2009" var id = 'c_' + date.replace("/", ''); // c_1231/2009 (wrong)</code>
Um alle Vorkommen zu ersetzen des Zeichens „/“ müssen Sie das Flag „global“ angeben:
<code class="javascript">var id = 'c_' + date.replace(new RegExp("/", "g"), ''); // c_12312009 (correct)</code>
Alternativ können Sie die kürzere Syntax verwenden:
<code class="javascript">var id = 'c_' + date.replace(/\//g, ''); // c_12312009 (correct)</code>
Durch Angabe des Flags „global“ Flag ersetzt die Ersetzungsmethode jedes Schrägstrichzeichen in der Datumszeichenfolge, was zu einer korrekten Ausgabe führt.
Das obige ist der detaillierte Inhalt vonWarum ersetzt die Ersetzungsmethode von JavaScript nur die erste Instanz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!