千分位分隔符實現


方式一: 算法實現
function getThousand (numStr{
    if (numStr.length < 4return numStr;
    let len = numStr.length;
    let restLen = len % 3// 千分位划分余下的位數
    let arr = [];
    let num = 3// 每3位取一次

    for(var i=0; i<len;) {
        if (restLen !== 0 && i === 0) {
            arr.push(numStr.slice(i, i + restLen));
            i += restLen;
        } else {
            arr.push(numStr.slice(i, i + num));
            i += num;
        }
    }

    return arr.join(',');
}

function ensureEqual(a, b, message{
    if (JSON.stringify(a) !== JSON.stringify(b)) {
        console.log(`***測試失敗, ${JSON.stringify(a)} 不等於 ${JSON.stringify(b)}${message}`);
    }
};

// 測試函數
ensureEqual(getThousand('999'), '999''test1');
ensureEqual(getThousand('1000'), '1,000''test2');
ensureEqual(getThousand('100000'), '100,000''test3');
ensureEqual(getThousand('1000000'), '1,000,000''test4');
 如果需要支持小數的話,那么把小數部分 split 一下即可
方式二: 使用正則表達式
function _getThousand (num{
    return num.toString().replace(/\B(?=(\d{3})+$)/g',');
}

ensureEqual(_getThousand('999'), '999''test1');
ensureEqual(_getThousand('1000'), '1,000''test2');
ensureEqual(_getThousand('100000'), '100,000''test3');
ensureEqual(_getThousand('1000000'), '1,000,000''test4');


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM