Replace-Methode
Aktualisiert: November 2007
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 rgExp 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
Das folgende Beispiel veranschaulicht die Verwendung der replace-Methode, um die erste Instanz des Wortes "The" durch das Wort "A" zu ersetzen. Beachten Sie, dass nur die erste Instanz von "The" ersetzt wird, da das Muster zwischen Groß-/Kleinschreibung unterscheidet.
function ReplaceDemo(){
var r, re; //Declare variables.
var ss = "The man hit the ball with the bat.\n";
ss += "while the fielder caught the ball with the glove.";
re = /The/g; //Create regular expression pattern.
r = ss.replace(re, "A"); //Replace "The" with "A".
return(r); //Return string with replacement made.
}
Darüber hinaus können durch die replace-Methode Teilausdrücke im Muster ersetzt werden. Im folgenden Beispiel wird jedes Wortpaar in der Zeichenfolge vertauscht.
function ReplaceDemo(){
var r, re; //Declare variables.
var ss = "The rain in Spain falls mainly in the plain.";
re = /(\S+)(\s+)(\S+)/g; //Create regular expression pattern.
r = ss.replace(re, "$3$2$1"); //Swap each pair of words.
return(r); //Return resulting string.
}
Das folgende Beispiel, das in JScript 5.5 und höher unterstützt wird, führt eine Konvertierung von Fahrenheit in Celsius durch und veranschaulicht die Verwendung einer Funktion als replaceText. Um diese Funktion nachzuvollziehen, geben Sie eine Zeichenfolge mit einer Zahl ein, auf die unmittelbar ein "F" folgt (z. B. "Wasser kocht bei 212").
function f2c(s) {
var test = /(\d+(\.\d*)?)F\b/g; //Initialize pattern.
return(s.replace
(test,
function($0,$1,$2) {
return((($1-32) * 5/9) + "C");
}
)
);
}
document.write(f2c("Water freezes at 32F and boils at 212F."));