最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

千分位數(shù)字格式化(用逗號隔開代碼已做了修改支持0-9位逗號隔開)的JS代碼_javascript技巧

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:16:49
文檔

千分位數(shù)字格式化(用逗號隔開代碼已做了修改支持0-9位逗號隔開)的JS代碼_javascript技巧

千分位數(shù)字格式化(用逗號隔開代碼已做了修改支持0-9位逗號隔開)的JS代碼_javascript技巧:最近做項(xiàng)目需要我們前端對金額進(jìn)行千分位格式化(也就是說每三位用逗號隔開),代碼已經(jīng)做了修改 之前的版本是本人疏忽 真對不住大家了!現(xiàn)在已經(jīng)做了修改 如果還有不完善的地方 請大家多多指教! 1. 支持用逗號隔開 0-9位 逗號隔開 JS代碼如下: 代碼如下:
推薦度:
導(dǎo)讀千分位數(shù)字格式化(用逗號隔開代碼已做了修改支持0-9位逗號隔開)的JS代碼_javascript技巧:最近做項(xiàng)目需要我們前端對金額進(jìn)行千分位格式化(也就是說每三位用逗號隔開),代碼已經(jīng)做了修改 之前的版本是本人疏忽 真對不住大家了!現(xiàn)在已經(jīng)做了修改 如果還有不完善的地方 請大家多多指教! 1. 支持用逗號隔開 0-9位 逗號隔開 JS代碼如下: 代碼如下:

最近做項(xiàng)目需要我們前端對金額進(jìn)行千分位格式化(也就是說每三位用逗號隔開),代碼已經(jīng)做了修改 之前的版本是本人疏忽 真對不住大家了!現(xiàn)在已經(jīng)做了修改 如果還有不完善的地方 請大家多多指教!

1. 支持用逗號隔開 0-9位 逗號隔開

JS代碼如下:

代碼如下:
/**
* JS格式化
* @param number 要格式化的數(shù)字
* @param d [0-9]位 逗號隔開
*/

function numFormat(number,d) {

var numArrs = ['0','1','2','3','4','5','6','7','8','9'],
REG_NUMBER = /^\d+(.\d+)?$/;

d = d || 3; // 不傳 是3位 千分位

if(isNumber(number) || isString(number) || REG_NUMBER.test(number)) {

// 先轉(zhuǎn)換成字符串
var toString = number + '',
isPoint = toString.indexOf('.'),
prefix, // 前綴
suffix, // 后綴
t = '';

if(isPoint > 0) {
prefix = toString.substring(0,isPoint);
suffix = toString.substring(isPoint + 1);

}else if(isPoint == 0) {
prefix = '';
suffix = toString.substring(1);

}else {
prefix = toString;
suffix = '';
}

if(prefix != '') {
prefixArr = prefix.split('').reverse();

var isArrayIndex = isArray(d,numArrs);
if(isArrayIndex > -1) {

for(var i = 0, ilen = prefixArr.length; i < ilen; i+=1) {
t += prefixArr[i] + ((i + 1) % isArrayIndex == 0 && (i + 1) != prefixArr.length ? "," : "");
}
t = t.split("").reverse().join("");
if(suffix != '') {
return t + "." + suffix;
}else {
return t;
}

}else {
return '傳入的多少位不正確';
}

}else if(prefix != '' && suffix == ''){

return prefix;

}else if(prefix == '' && suffix != ''){
prefix = 0;

return prefix + suffix;
}else {
return "有錯(cuò)誤";
}
}else {
return '傳入的要格式化的數(shù)字不符合';
}

}
function isArray(item,arrs) {
for(var i = 0, ilen = arrs.length; i < ilen; i++) {
if(item == arrs[i]) {
return i;
}
}
return -1;
}
function isNumber(number) {
return Object.prototype.toString.apply(number) === '[object Number]';
}

function isString(number) {
return Object.prototype.toString.apply(number) === ['object String'];
}

但是貌似還有一個(gè)不完善的地方 就是 我這樣調(diào)用 console.log(numFormat("1111.00")); 在控制臺上 直接輸出 1,111 而不是1,111.00 也就是說 如果小數(shù)點(diǎn)后面的是 0的話 游覽器自動(dòng)會(huì)抹掉后面的0 其他的都正常!本人測試了下 基本符合要求 如有不完善的地方 請大家多多指教!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

千分位數(shù)字格式化(用逗號隔開代碼已做了修改支持0-9位逗號隔開)的JS代碼_javascript技巧

千分位數(shù)字格式化(用逗號隔開代碼已做了修改支持0-9位逗號隔開)的JS代碼_javascript技巧:最近做項(xiàng)目需要我們前端對金額進(jìn)行千分位格式化(也就是說每三位用逗號隔開),代碼已經(jīng)做了修改 之前的版本是本人疏忽 真對不住大家了!現(xiàn)在已經(jīng)做了修改 如果還有不完善的地方 請大家多多指教! 1. 支持用逗號隔開 0-9位 逗號隔開 JS代碼如下: 代碼如下:
推薦度:
標(biāo)簽: 格式化 js 代碼
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top