您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關JavaScript的replace()傳入函數(shù)時的用法案例的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
<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//返回經(jīng)過修改后的字符串 */ /* function(a,b,c)一共可以傳入3個參數(shù),第一個為匹配的字符串,第二個為匹配字符串的起始位置, 第三個為調用replace方法的字符串本身??梢匀笔或b、c。 */ </script>
需求:將浮點數(shù)點左邊的數(shù)每三位添加一個逗號?
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"] 第一項:匹配成功返回的結果(預測斷言匹配成功的值不會出現(xiàn)在匹配結果中) 第二項:第一個捕獲組對應的值 第三項:第二個捕獲組對應的值 第四項:匹配字符串的索引值 第五項:原始字符串 */
分析:
?=exp:預測斷言,斷言出現(xiàn)的位置必須匹配exp,否則匹配失敗,匹配成功后不會占據(jù)長度。
/(\d)(?=(\d{3})+.)/g執(zhí)行全局匹配,第一次匹配成功的字符串為:“2000000.”
第二次匹配成功的字符串為"0000."
感謝各位的閱讀!關于JavaScript的replace()傳入函數(shù)時的用法案例就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。