鍍金池/ 問答/HTML/ 一個JS字符串替換問題

一個JS字符串替換問題

提問編輯器里美元符號抱錯-^-

在《JavaScript正則表打死迷你書》中有一段貨幣格式化的代碼:

function format (num) {
?return num.toFixed(2).replace(/\B(?=(\d{3})+\b)/g, ",").replace(/^/, "$$ ");
};
console.log( format(1888) );
// => "$ 1,888.00"

請問這里為什么要用倆個美元符號,
而不是一個美元符號,
并且我在Chrome中用一個美元符號 也是正確的?

回答
編輯回答
六扇門

你在多個瀏覽器中測試一下呢?

2018年7月2日 15:55
編輯回答
抱緊我

和瀏覽器沒關(guān)系。
這是因為 $ 符號在子串匹配中是有意義的,代表的是()中的子串,可以參考 MDN子串匹配說明 ,你這個題的場景反應(yīng)不出來
換個場景: 用正則把一串只有小數(shù)部分的數(shù)字前面補(bǔ)位 1, 并在開頭加上 $符號, 結(jié)尾加上 /月:

('.33').replace(/^(\.\d+)($)/, '$$1$1/月') //必須用兩個$符號轉(zhuǎn)義,否則$1代表第一個小括號的子匹配

('.33').replace(/^(\.\d+)($)/, '$1$1/月') //這是錯誤的演示,輸出 .33.33/月
2018年1月7日 14:14
編輯回答
莓森

瀏覽器的問題吧 非IE和IE吧

2017年9月24日 16:58