Javascript 正則表達(dá)式實(shí)現(xiàn)為數(shù)字添加千位分隔符

字號(hào):


    在項(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>
    以上就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。