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.

  • JavaScript 1.1
  • Chrome
  • Firefox
  • IE
  • Opera
  • Safari
Beispiel
str.replace(regexp|substr, neuerSubStr|function[, flags])

Erwartet folgende Parameter:

  1. regexp = Ein regulärer Ausdruck, der Suchtreffer liefern kann.
  2. neuerSubstr = eine Zeichenkette, durch die gefundene Stellen ersetzt werden sollen.

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.

[Bearbeiten] Anwendungsbeispiel

Beispiel ansehen …
function init() {
  var elem = document.getElementById('button');
  elem.addEventListener('click', ersetzen);	
}
 
function ersetzen() {
  var vormals = "Elke Hinz";
  var jetzt = vormals.replace(/Hinz/g, "Kunz, geb. Hinz");
  ausgabe(jetzt);
}
 
function ausgabe(text){
  var ausgabe = document.getElementById('ausgabe');
  ausgabe.innerHTML = 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.

[Bearbeiten] weitere Beispiele

Beispiel: 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.


[Bearbeiten] Weblinks

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Übersicht
Index
Mitmachen
Werkzeuge
Spenden
SELFHTML