Heim >Web-Frontend >js-Tutorial >Parameterverwendung, wenn der zweite Parameter von Javascript replace() eine Funktion ist (ausführliche Erklärung für alle)

Parameterverwendung, wenn der zweite Parameter von Javascript replace() eine Funktion ist (ausführliche Erklärung für alle)

亚连
亚连Original
2018-05-19 13:45:432544Durchsuche

Die Funktion „replace()“ verfügt über zwei Parameter. Der erste Parameter kann der zu ersetzende String oder ein regulärer Ausdruck sein Wenn Sie eine Funktion verwenden, werfen wir einen Blick auf einige Codebeispiele zur Funktion replace()

Der zweite Parameter von JavaScripts replace() ist der Parameter der Funktion:

Die Funktion replacement() Hat eine Ersetzungsfunktion, kann der erste Parameter die zu ersetzende Zeichenfolge oder ein regulärer Ausdruck sein, der mit der zu ersetzenden Zeichenfolge übereinstimmt. Schauen wir uns „Ersetzen“ an Codebeispiele der ()-Funktion.
Codebeispiel:
Beispiel 1:

<script>
var str="I love jb51 and you?";
console.log(str.replace("jb","java"));
</script>

Der obige Code kann nur den ersten angegebenen Teilstring im String ersetzen.
Beispiel 2:

<script>
var str="I love jb51 and you?";
var reg=/jb/g;
console.log(str.replace(reg,"java"));
</script>

Der obige Code kann alle angegebenen Teilzeichenfolgen in der Zeichenfolge ersetzen.
Beispiel 3:

<script>
var str="I love jb51 and you?";
console.log(str.replace("jb",function(){
 return "java"}
));
</script>

Im obigen Code ist der zweite Parameter eine Funktion, und der Rückgabewert dieser Funktion kann verwendet werden, um den zu ersetzen angegebene Zeichenfolge Teilzeichenfolge. Wenn der zweite Parameter eine Funktion ist, kann die Funktion tatsächlich Parameter übergeben. Lassen Sie uns die Parameterprobleme der Funktion anhand von Codebeispielen vorstellen.
Der Code lautet wie folgt:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<title>脚本之家</title>
<script type="text/javascript">
var url = "http://www.jb51.net/o.php?mod=viewthread&tid=14743&extra=page%3D1";
//第一参数为字符串
console.group("字符串");
var oneResult = url.replace("www.jb51.net",function(){
 console.log("replace输入参数:%o",arguments);
 var val = /www.jb51.net/.exec(url);
 
 console.log("exec输出参数:%o",val);
              
 console.assert(arguments[0] === val[0]);
 console.assert(arguments[1] === val["index"]);
 console.assert(arguments[2] === val["input"]);
 return "jb51";
});
console.log("replace返回字符串:"+oneResult);
console.groupEnd("字符串");
    
//第一参数为正则表达式
console.group("正则表达式");
var regexp_global = /[?&](\w+)=([^&]*)/g;
var count = 0;
var twoResult = url.replace(regexp_global,function(){
 console.log("第"+(count++)+"次运行");
 console.log("replace输入参数:%o",arguments);
 var val = regexp_global.exec(url);
 console.log("exec输出参数:%o",val);
              
 console.assert(arguments[0] === val[0]);
 console.assert(arguments[1] === val[1]);
 console.assert(arguments[2] === val[2]);
 console.assert(arguments[3] === val["index"]);
 console.assert(arguments[4] === val["input"]);
 return count;
});
console.log("replace返回字符串:"+twoResult);
console.groupEnd("正则表达式");
</script>
</head>
<body>
 
</body>
</html>

Im obigen Code wird gezeigt, dass der erste Parameter der Funktion replace() eine gewöhnliche Zeichenfolge ist und ein regulärer Ausdruck, wenn Parameter als zweiter Funktionsparameter übergeben werden, wird unten eine kurze Erklärung gegeben:
Der erste Parameter ist eine gewöhnliche Zeichenfolge:

Wenn der erste Parameter eine gewöhnliche Zeichenfolge ist, dann nur Die erste Teilzeichenfolge in der ursprünglichen Zeichenfolge wird ersetzt, d. h., es wird nur eine Ersetzungsoperation für die an die Funktion übergebenen Parameter und das von der Funktion exec() zurückgegebene Array unter Verwendung gewöhnlicher Zeichenfolgenparameter als reguläre Ausdrücke durchgeführt Elemente sind gleich.
Der erste Parameter ist ein regulärer Ausdruck:

Aus Platzgründen wird hier nur ein Teil der laufenden Ergebnisse abgefangen. Der erste Parameter der Funktion replace() ist ein regulärer Ausdruck und die Ausführung erfolgt Globale Übereinstimmung, dann wird der zweite Funktionsparameter mehrmals aufgerufen und die jedes Mal übergebenen Parameter sind dieselben wie die Elementinhalte des von regexp_global.exec(url) zurückgegebenen Arrays.

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

Verwenden Sie js, um die heutige Woche des Jahres abzurufen (kleines Beispiel, mit Quellcode)

Sprechen Sie über HTML+CSS+JS (ausführliche Erklärung)

Über die Optimierung Ihres JS-Codes (grafisches Tutorial)

Das obige ist der detaillierte Inhalt vonParameterverwendung, wenn der zweite Parameter von Javascript replace() eine Funktion ist (ausführliche Erklärung für alle). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn