溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript的replace()傳入函數(shù)時的用法案例

發(fā)布時間:2020-10-12 15:31:36 來源:億速云 閱讀:110 作者:小新 欄目:web開發(fā)

這篇文章給大家分享的是有關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ù)時的用法案例就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI