JS的千分位算法

//轉成千分位類型
function commafy(obj) {
    var num = obj.value;
    if (isNaN(num)) {
        alert('非法輸入');
        num = '';
        return;
    }
    //1.先去除空格,判斷是否空值和非數
    num = num + "";
    num = num.replace(/[ ]/g, "");
    if (num == "") {
        //alert("空值,結束");
        return;
    }
    if (isNaN(num)) {
        //alert("非數,結束");
        return;
    }
    //2.針對是否有小數點,分情況處理
    var index = num.indexOf(".");
    if (index == -1) {//無小數點
        var reg = /(-?\d+)(\d{3})/;
        while (reg.test(num)) {
            num = num.replace(reg, "$1,$2");
        }
    } else {
        var intPart = num.substring(0, index);
        var pointPart = num.substring(index + 1, num.length);
        var reg = /(-?\d+)(\d{3})/;
        while (reg.test(intPart)) {
            intPart = intPart.replace(reg, "$1,$2");
        }
        num = intPart + "." + pointPart;
    }
    obj.value = num;
}
//轉回數字
function onComm(obj) {
    var num = obj.value;
    num = num + "";
    num = num.replace(/[,]/g, "");
    obj.value = num;
}
發佈了38 篇原創文章 · 獲贊 3 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章