JS数字千分位格式化实现方法总结
本文实例讲述了JS数字千分位格式化实现方法。分享给大家供大家参考,具体如下:

用js实现如下功能,将给定的数字转化成千分位的格式,如把“10000”转化成“10,000”,并考虑到性能方面的因素。
一.首先想到的办法,将数字转换为字符串(toString())再打散成数组(split),如果直接数字转换为数组,就是一整个放进去了,不能单独取到每一位。然后通过循环,逐个倒着把数组中的元素插入到新数组的开头(unshift),第三次或三的倍数次,插入逗号,最后把新数组拼接成一个字符串
n=1233456;
toQfw(n);
function toQfw(){
var arr_n=n.toString().split("");
var result=[];
var cs=0;
for(var i=arr_n.length-1;i>=0;i--){
cs++;
result.unshift(arr_n[i]);
if(!(cs%3)&&i!=0){ //i!=0即取到第1位的时候,前面不用加逗号
result.unshift(",");
}
alert(result.join(""))
}
};
缺点,一位一位的加进去,性能差,且还要先转换成字符串再转换成数组
二.于是想到能不能从头到尾都用字符串完成,不通过数组,即用charAt()获取子字符串,主要用到字符串拼接
n=1233456;
toQfw(n);
function toQfw(){
var str_n=n.toString();
var result="";
var cs=0;
for(var i=str_n.length-1;i>=0;i--){
cs++;
result=str_n.charAt(i)+result;
if(!(cs%3)&&i!=0){
result=","+result;
}
alert(result)
}
};
缺点:依然是一位一位加进去
三.可不可以不用循环用纯字符串方法来实现,这样就不会一位一位加进去了。每次取末三位子字符串放到一个新的空字符串里并拼接上之前的末三位,原本数组不断截掉后三位直到长度小于三个,最后把剥完的原数组拼接上新的不断被填充的数组
n=1233456;
toQfw(n);
function toQfw(){
var str_n=n.toString();
var result="";
while(str_n.length>3){
result=","+str_n.slice(-3)+result;
str_n=str_n.slice(0,str_n.length-3)
}
if(str_n){
alert(str_n+result)
}
};
性能最佳
四.用正则表达式,去最后三位数字,和字符串匹配,匹配成功就把后三位存起来,前面加逗号,然后将原字符串的值更新为匹配成功剩下的左边,直到正则与字符串匹配成功后三位的值和原字符串更新值相等时,说明取完了
n=1233456;
toQfw(n);
function toQfw(){
var str_n=n.toString();
var result="";
var re=/\d{3}$/;
while(re.test(str_n)){
result=RegExp.lastMatch+result;
if(str_n!=RegExp.lastMatch){
result=","+result;
str_n=RegExp.leftContext; //匹配成功,返回匹配内容左侧的字符信息
}
else{
num="";
}
}
if(str_n){
alert(str_n+result);
}
}
五.简化版正则,用前向声明和非前向声明,从后往前匹配3位数字,前向声明的地方替换成逗号,但是如果刚好3的倍数位,会第一位前面也加,所以前面要再来个非前向声明
var str="123598752";
var re=/(?=(?!(\b))(\d{3})+$)/g;
str=str.replace(re,",");
alert(str);
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
代码知识SEO上一篇 : 详解适配iOS10 的相关权限设置
下一篇 : MySQL 5.7.14 net start mysql 服务无法启动-“NET HELPMSG 3534” 的奇怪问题
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!