Maison >interface Web >js tutoriel >Explication détaillée de l'utilisation du replace() de JavaScript lors du passage de la fonction
Cet article vous apporte une explication détaillée de l'utilisation du replace() de JavaScript lors du passage de la fonction. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
<script> var str = "a1ba2b"; var reg = /a.b/g; str = str.replace(reg,function(a,b){ console.log(a); console.log(b); return b == 0 ? a.replace("a","0") : a.replace("b","3"); }); console.log(str); /* 输出结果为: a1b 0//第一次匹配到a1b,将a置为0. a2b 3//第二次匹配到a2b,将b置为3. 01ba23//返回经过修改后的字符串 */ /* function(a,b,c)一共可以传入3个参数,第一个为匹配的字符串,第二个为匹配字符串的起始位置, 第三个为调用replace方法的字符串本身。可以缺省c或b、c。 */ </script>
Exigence : Convertir le nombre à gauche du flottant point pointer vers chaque Ajouter une virgule à trois chiffres ?
var str = '12000000.11'; var res = str.replace(/(\d)(?=(\d{3})+\.)/g, function(s1, s2) { console.log(arguments) // (\d{3})+ 虽然有+但只算一个捕获组 return s2 + ','; // 替换匹配成功的返回值 }); console.log(res) // 12,000,000.11 /* arguments的值为(匹配成功两次): ["2", "2", "000", 1, "12000000.11"] ["0", "0", "000", 4, "12000000.11"] 第一项:匹配成功返回的结果(预测断言匹配成功的值不会出现在匹配结果中) 第二项:第一个捕获组对应的值 第三项:第二个捕获组对应的值 第四项:匹配字符串的索引值 第五项:原始字符串 */
Analyse :
?=exp : Assertion prédictive, la position où l'assertion apparaît doit correspondre à exp, sinon la correspondance échoue et la longueur ne sera pas occupée une fois la correspondance réussie.
/(d)(?=(d{3})+.)/g effectue une correspondance globale. La première correspondance de chaîne réussie est : "2000000." 0000."
Tutoriel vidéo JavaScript, veuillez faire attention au site Web PHP chinois.
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!