Dieser Artikel enthält eine detaillierte Erklärung der Verwendung von JavaScripts replace() bei der Übergabe der Funktion. Ich hoffe, dass er für Freunde hilfreich ist.
<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>
Anforderung: Alle drei Ziffern links vom Gleitkomma hinzufügen Punkt Komma hinzufügen?
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: Vorhersagebehauptung, die Position, an der die Behauptung erscheint, muss mit exp übereinstimmen, andernfalls schlägt die Übereinstimmung fehl und die Länge wird nach erfolgreicher Übereinstimmung nicht belegt.
/(d)(?=(d{3})+.)/g führt einen globalen Abgleich durch. Der erste erfolgreiche String-Match ist: „2000000“. 0000."
JavaScript-Video-Tutorial, achten Sie bitte auf die chinesische PHP-Website.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von JavaScripts replace() bei der Übergabe der Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!