UNPKG

wsemi

Version:

A support package for web developer.

54 lines (45 loc) 1.24 kB
import isnum from './isnum.mjs' import isp0int from './isp0int.mjs' import dig from './dig.mjs' /** * 數字或字串轉金融格式(百分位添加逗號)表示 * 若輸入不是數字或字串時則回傳空字串 * * Unit Test: {@link https://github.com/yuda-lyu/wsemi/blob/master/test/cfinancial.test.mjs Github} * @memberOf wsemi * @param {Number|String} v 輸入數字或字串 * @param {Integer} [idig=0] 輸入指定小數位整數,預設為0 * @returns {String} 回傳金融格式的字串 * @example * * console.log(cfinancial(0.123456789, 3)) * // => '0.123' * * console.log(cfinancial(1234567.89)) * // => '1,234,568' * * console.log(cfinancial(1234567.89, 1)) * // => '1,234,567.9' * */ function cfinancial(v, idig = 0) { //check if (!isnum(v)) { return '' } if (!isp0int(idig)) { return '' } v = dig(v, idig) //轉成金融數字格式 let x = v.split('.') let x1 = x[0] let x2 = x.length > 1 ? '.' + x[1] : '' let rgx = /(\d+)(\d{3})/ while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2') } let r = x1 + x2 return r } export default cfinancial