[Javascript Practice] 千分位处理

Instruction:

[1] typeof判断是否为“number”
[2] 判断是否有小数 有小数, 将小数和整数分开, 结果再合并
没有小数直接操作
patternpoint -> test (true/false)
[3]* /\??(\d+)(\d{3})/;没有/g, 一步步加入“,” 使用while来循环操作
[4] String类型才有replace这些功能, Number转化为String, 再转化为Number类型。
toString() valueOf()

<script type="text/javascript">
   function reg(num){
     //是否为数字类型 不是:
     if (typeof num!="number") {
         return "NaN";
     }else{
     //是数字类型
         //判断小数点的正则
         var patternpoint=/[.]/g;
         //加入,的正则
         var pattern=/\??(\d+)(\d{3})/;

         // 判断是否存在小数点 true
         if (patternpoint.test(num)) {
           //if check the point -> split(".")
           var pointnum=num.toString().split(".")[1];
           var numstr=num.toString().split(".")[0];

           while(pattern.test(numstr)){ 
                       numstr=numstr.replace(pattern,function($0,$1,$2){
                   return $1+","+$2;
              });
           }
           //最后结果转回Number类型
           return (numstr+"."+pointnum).valueOf();

         //没有小数点
         }else{
           var numstr=num.toString();//convert to the Type String

           //判断是否还可以再继续加入","
           while(pattern.test(numstr)){           numstr=numstr.replace(pattern,function($0,$1,$2){
                   return $1+","+$2;
                   //在两个子括号中加入","
              });
           }
           //最后结果转回Number类型
           return numstr.valueOf();
         }

    }
   } 



//Test: 
   var num=-1200009.123;
   var num1=-1200009;
   var num2=120000900000;
   var num3="12123123";

   console.log(reg(num));
   console.log(reg(num1));
   console.log(reg(num2));
   console.log(reg(num3));
</script>

Result:

Result

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值