在項(xiàng)目中做貨幣轉(zhuǎn)換的時(shí)候經(jīng)常需要可以實(shí)現(xiàn)自動(dòng)格式化輸入的數(shù)字,自動(dòng)千位分隔符,在網(wǎng)上也看到一些其他網(wǎng)友的實(shí)現(xiàn)的代碼,感覺都不是太滿意,于是自己研究了下,分享給大家。
最近在網(wǎng)上有看到使用js來實(shí)現(xiàn)數(shù)字的千位分隔符的面試(筆試)題,所以就自己寫了一個(gè)利用“正則+replace”來實(shí)現(xiàn)的方法:
復(fù)代碼如下:
var thousandBitSeparator = function(numStr){
var b = /([-+]?\d{3})(?=\d)/g;
return numStr.replace(b, function($0, $1){
return $1 + ',';
});
}
支持正負(fù)號(hào)匹配,小數(shù)點(diǎn)區(qū)分,如有錯(cuò)誤,希望大大們指出:-D
附上一個(gè)其他網(wǎng)友的實(shí)現(xiàn)方法
代碼如下:
<script language="JavaScript" type="text/javascript">
function formatNumber(num){
if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)){
return num;
}
var a = RegExp.$1,b = RegExp.$2,c = RegExp.$3;
var re = new RegExp().compile("()");
while(re.test(b)){
b = b.replace(re,"$1,$2$3");
}
return a +""+ b +""+ c;
}
var num=1234567/3;
alert("num="+num+",四舍五入:"+Math.round(num)+",兩位有效數(shù)字:"+num.toFixed(2)+",添加千位分隔符:"+formatNumber(num));
</script>
以上就是本文的全部內(nèi)容了,希望大家能夠喜歡。
更多信息請(qǐng)查看IT技術(shù)專欄