Replace-Methode
Gibt eine Kopie einer Zeichenfolge mit ersetztem Text unter Verwendung eines regulären Ausdrucks oder einer Suchzeichenfolge zurück.
function replace(rgExp : RegExp, replaceText : String) : String
Argumente
rgExp
Erforderlich. Eine Instanz eines Regular Expression-Objekts, die das Muster des regulären Ausdrucks sowie anwendbare Flags enthält. Kann auch ein String-Objekt oder Zeichenfolgenliteral sein. Wenn rgExp keine Instanz eines Regular Expression-Objekts ist, wird in eine Zeichenfolge konvertiert, und es wird eine exakte Suche nach den Ergebnissen durchgeführt. Es wird kein Versuch unternommen, die Zeichenfolge in einen regulären Ausdruck zu konvertieren.replaceText
Erforderlich. Ein String-Objekt oder Zeichenfolgenliteral mit dem Text, der jede Entsprechung von rgExp im aktuellen Zeichenfolgenobjekt ersetzen soll. In JScript 5.5 oder höher kann das replaceText-Argument auch eine Funktion sein, die den Ersetzungstext zurückgibt.
Hinweise
Das Ergebnis der replace-Methode ist eine Kopie des aktuellen Zeichenfolgenobjekts, nachdem die angegebenen Ersetzungen durchgeführt wurden.
Jede der folgenden Übereinstimmungsvariablen kann zum Anzeigen der aktuellen Übereinstimmung und der Zeichenfolge, aus der sie resultierte, verwendet werden. Die Übereinstimmungsvariablen können bei Textersetzungen verwendet werden, bei denen die Ersetzungszeichenfolge dynamisch bestimmt werden muss.
Zeichen |
Bedeutung |
---|---|
$$ |
$ (JScript 5.5 oder höher) |
$& |
Gibt den Teil des aktuellen Zeichenfolgenobjekts an, auf den das vollständige Muster zutraf. (JScript 5.5 oder höher) |
$` |
Gibt den Teil des aktuellen Zeichenfolgenobjekts an, der der Übereinstimmung vorangeht, die durch $& beschrieben wird. (JScript 5.5 oder höher) |
$' |
Gibt den Teil des aktuellen Zeichenfolgenobjekts an, der der Übereinstimmung folgt, die durch $& beschrieben wird. (JScript 5.5 oder höher) |
$n |
Die nte erfasste Teilübereinstimmung, wobei n eine einfache Dezimalzahl zwischen 1 und 9 ist. (JScript 5.5 oder höher) |
$nn |
Die nnte erfasste Teilübereinstimmung, wobei nn eine zweistellige Dezimalzahl zwischen 01 und 99 ist. (JScript 5.5 oder höher) |
Wenn replaceText eine Funktion ist, wird die Funktion für jede übereinstimmende Teilzeichenfolge mit den Argumenten m + 3 aufgerufen, wobei m der Anzahl von links schließenden Klammern in rgExp entspricht. Das erste Argument ist die übereinstimmende untergeordnete Zeichenfolge. Die nächsten m-Argumente sind alle Erfassungen, die aus der Suche resultieren. Das Argument m + 2 ist der Offset innerhalb des aktuellen Zeichenfolgenobjekts, in dem die Übereinstimmung auftrat, und das Argument m + 3 ist das aktuelle Zeichenfolgenobjekt. Das Ergebnis ist eine Zeichenfolge, die daraus resultiert, dass jede übereinstimmende untergeordnete Zeichenfolge durch den entsprechenden Rückgabewert des Funktionsaufrufs ersetzt wird.
Die replace-Methode aktualisiert die Eigenschaften des globalen RegExp-Objekts.
Beispiel
Im folgenden Beispiel wird die Verwendung der replace-Methode zum Ersetzen aller Instanzen von "the" durch "a" veranschaulicht.
function ReplaceDemo()
{
var s = "The batter hit the ball with the bat ";
s += "and the fielder caught the ball with the glove.";
// Replace "the" with "a".
var re = /the/g;
var r = s.replace(re, "a");
return(r);
}
Darüber hinaus können durch die replace-Methode Teilausdrücke im Muster ersetzt werden. Im folgenden Beispiel wird jedes Paar von Wörtern in der Zeichenfolge ausgetauscht.
function ReplaceDemo(){
var s = "The quick brown fox jumps over the lazy dog.";
// Create regular expression pattern.
var re = /(\S+)(\s+)(\S+)/g;
// Exchange each pair of words.
var r = s.replace(re, "$3$2$1");
return(r);
}
// Output: quick The fox brown over jumps lazy the dog.
Im folgenden Beispiel für JScript 5.5 und höher wird eine Konvertierung von Fahrenheit in Celsius ausgeführt. Es veranschaulicht die Verwendung einer Funktion zum Zurückgeben des Ersetzungstexts. Um diese Funktion nachzuvollziehen, geben Sie eine Zeichenfolge mit einer Zahl ein, auf die unmittelbar ein "F" folgt (z. B. "Wasser kocht bei 212F")).
function f2c(s1) {
// Initialize pattern.
var test = /(\d+(\.\d*)?)F\b/g;
// Use a function for the replacement.
var s2 = s1.replace(test,
function($0,$1,$2)
{
return((($1-32) * 5/9) + "C");
}
)
return s2;
}
print(f2c("Water freezes at 32F and boils at 212F."));