JavaScript/Objekte/String/replace

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Methode String.replace() durchsucht eine Zeichenkette mit Hilfe eines regulären Ausdrucks und ersetzt Zeichenfolgen, auf die der reguläre Ausdruck passt. Alternativ kann die Methode auch das erste Vorkommen einer zu definierenden Zeichenkette ersetzen.

Beispiel
str.replace(regexp|substr, neuerSubStr|function[, flags])

Erwartet folgende Parameter:

  1. regexp = ein regulärer Ausdruck, der Suchtreffer liefern kann, oder substr = eine Zeichenkette, deren erstes Vorkommen ersetzt werden soll
  2. neuerSubstr = eine Zeichenkette, durch die gefundene Stelle(n) ersetzt werden soll(en)

Standardmäßig wird nur die erste gefundene Zeichenfolge ersetzt. Um mit einem Aufruf von replace() alle Vorkommen zu ersetzen, müssen Sie den regulären Ausdruck mit dem g-Parameter notieren, z. B. /Zeichenfolge/g, oder die Methode replaceAll verwenden.

Anwendungsbeispiel

Beispiel ansehen …
document.addEventListener('DOMContentLoaded', function () {

  document.getElementById('button').addEventListener('click', ersetzen);	

 
  function ersetzen() {
    var vormals = "Elke Hinz";
    var jetzt = vormals.replace(/Hinz/g, "Kunz, geb. Hinz");
    ausgabe(jetzt);
  }

  function ausgabe(text){
    document.getElementById('output').innerText = text;
  }

});
Das Script im Beispiel belegt eine Variable vormals mit einem Namen. Auf den gespeicherten Namen wird mit String.replace() ein Suchen-Ersetzen-Vorgang angewendet. Der erste Parameter, der replace() übergeben wird, ist ein regulärer Ausdruck. Dieser passt durch den g-Zusatz auf alle Vorkommen der Zeichenfolge "Hinz" in der Variable vormals. Der Suchtreffer des regulären Ausdrucks wird durch "Kunz, geb. Hinz" ersetzt. Das Ergebnis wird zur Kontrolle ausgegeben.

Näheres über reguläre Ausdrücke und weitere Beispiele für diese Methode finden Sie beim RegExp-Objekt.

weitere Beispiele

Beide Argumente sind Strings; es wird nur das erste Vorkommen ersetzt.
t1 = "Die \"Anführungszeichen\" ersetzen. Die \"Anführungszeichen\" ersetzen.";
t1 = t1.replace(" \"", " »");
t1 = t1.replace("\" ", "« ");
ausgabe(t1); 
// Die »Anführungszeichen« ersetzen. Die "Anführungszeichen" ersetzen.

Das erste Argument kann auch ein regulärer Ausdruck sein. Wird dieser mit dem Modifikator 'g' angegeben, werden alle Vorkommen ersetzt:

Beispiel
t1 = "Die \"Anführungszeichen\" ersetzen. Die \"Anführungszeichen\" ersetzen.";
t1 = t1.replace(/\s"/g, " »");
t1 = t1.replace(/"\s/g, "« ");
ausgabe(t1); // Die »Anführungszeichen« ersetzen. Die »Anführungszeichen« ersetzen.

Das zweite Argument kann folgende speziellen Ersetzungsmuster beinhalten:

Name Wert
$$ setzt ein '$' ein
$& setzt den passenden Teilstring ein
$` setzt den Teilstring vor dem passenden Teilstring ein
$' setzt den Teilstring nach dem passenden Teilstring ein
$n Wobei n eine Zahl ist: falls das erste Argument ein regulärer Ausdruck war, werden so die geklammerten Teilstrings eingesetzt.
Beispiel
t1 = "Möge die Macht mit dir sein!";
t2 = t1.replace('Macht', '»$&«');
ausgabe(t2);


Das zweite Argument kann auch eine Funktion sein, die einen String zurückgibt. Diese Funktion kann folgende Argumente haben:

Name Wert
str der zu ersetzende Teilstring
p1, p2, … geklammerte Teilstrings, wenn das erste Argument ein regulärer Ausdruck ist
offset Position des zu ersetzenden Teilstrings
s der gesamte durchsuchte String
Beispiel
t1 = "Die \"Anführungszeichen\" ersetzen.";
t2 = t1.replace(/\s"|"\s/g, function (needle) {
  switch (needle) {
    case ' "':
      return ' »';
    case '" ':
      return '« ';
  }
});
ausgabe(t2); // Die »Anführungszeichen« ersetzen.

Siehe auch

Weblinks