Maison  >  Article  >  interface Web  >  Utilisation des paramètres lorsque le deuxième paramètre de javascript replace() est une fonction (explication détaillée pour tout le monde)

Utilisation des paramètres lorsque le deuxième paramètre de javascript replace() est une fonction (explication détaillée pour tout le monde)

亚连
亚连original
2018-05-19 13:45:432505parcourir

La fonction replace() a une fonction de remplacement. Elle peut avoir deux paramètres. Le premier paramètre peut être la chaîne à remplacer ou une expression régulière correspondant à la chaîne à remplacer. une fonction, jetons un coup d'œil à quelques exemples de code sur la fonction replace()

Le deuxième paramètre de replace() de JavaScript est le paramètre de la fonction :

La fonction replace() a une fonction de remplacement, il peut avoir deux paramètres. Le premier paramètre peut être la chaîne à remplacer ou une expression régulière correspondant à la chaîne à remplacer. Le deuxième paramètre peut être le texte de remplacement ou une fonction. exemples de code de la fonction ().
Exemple de code :
Exemple 1 :

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

Le code ci-dessus ne peut remplacer que la première sous-chaîne spécifiée dans la chaîne.
Exemple 2 :

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

Le code ci-dessus peut remplacer toutes les sous-chaînes spécifiées dans la chaîne.
Exemple 3 :

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

Dans le code ci-dessus, le deuxième paramètre est une fonction, et la valeur de retour de cette fonction peut être utilisée pour remplacez la sous-chaîne de chaîne spécifiée dans . Lorsque le deuxième paramètre est une fonction, la fonction peut réellement transmettre des paramètres. Présentons les problèmes de paramètres de la fonction à travers des exemples de code.
Le code est le suivant :

<!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>

Dans le code ci-dessus, il est démontré que le premier paramètre de la fonction replace() est un chaîne ordinaire et une expression régulière. Lorsque le deuxième paramètre de fonction est passé dans la formule, une brève explication sera donnée ci-dessous :
Le premier paramètre est une chaîne ordinaire :

Lorsque le premier paramètre est une chaîne ordinaire. temps de chaîne, alors seule la première sous-chaîne de la chaîne d'origine sera remplacée, c'est-à-dire qu'une seule opération de remplacement sera effectuée, les paramètres passés pour la fonction et la fonction exec() renvoyés en utilisant des paramètres de chaîne ordinaires comme expressions régulières Les éléments des tableaux sont les mêmes.
Le premier paramètre est une expression régulière :

Pour des raisons d'espace, seule une partie des résultats en cours d'exécution est interceptée ici. Le premier paramètre de la fonction replace() est une expression régulière, et l'exécution est. correspondance globale, alors le deuxième paramètre de fonction sera appelé plusieurs fois et les paramètres passés à chaque appel sont les mêmes que le contenu de l'élément du tableau renvoyé par regexp_global.exec(url).

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

Utilisez js pour obtenir la semaine de l'année d'aujourd'hui (petit exemple, avec code source)

Parlez de HTML+CSS+JS (explication détaillée)

De comment optimiser votre code JS (tutoriel graphique)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn