js中将长数字格式化,如“10000”变成 “10,000”或"10 000"

业务开发的时候遇到的此类需求,以为页面用RN开发,后端返回价格数据全部以分为单位,

handleMoney:function(num, precision, separator){
// var parts;
// // 判断是否为数字
// if (!isNaN(parseFloat(num)) && isFinite(num)) {
// // 把类似 .5, 5. 之类的数据转化成0.5, 5, 为数据精度处理做准, 至于为什么
// // 不在判断中直接写 if (!isNaN(num = parseFloat(num)) && isFinite(num))
// // 是因为parseFloat有一个奇怪的精度问题, 比如 parseFloat(12312312.1234567119)
// // 的值变成了 12312312.123456713
// num = Number(num);
// // 处理小数点位数
// num = (typeof precision !== 'undefined' ? num.toFixed(precision) : num).toString();
// // 分离数字的小数部分和整数部分
// parts = num.split('.');
// // 整数部分加[separator]分隔, 借用一个著名的正则表达式
// parts[0] = parts[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1' + (separator || ','));
//
// return parts.join('.');
// }
// return NaN;
var result = "10000000".replace(/\d+?(?=(?:\d{3})+$)/img, "$& ");
return result;
},

推荐阅读更多精彩内容

  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 574评论 0 6
  • 不支持上传文件,所以就复制过来了。作者信息什么的都没删。对前端基本属于一窍不通,所以没有任何修改,反正用着没问题就...
    全栈在路上阅读 1,599评论 0 2
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 11,651评论 0 33
  • 月华皎皎映苍台,影疏池浅夜阑珊。风动碧环红晕开,荷香袅袅入梦来。 《月影风荷》 ...
    青木先生阅读 159评论 0 1
  • 晚上看了一篇圈子的文章讲学好英语的重要性,于是对在写作业的小孩说要好好学英语哦,还要好好学摄影哦,英语和摄影都是要...
    花手鞠阅读 61评论 0 0