美文网首页
数值加千位符

数值加千位符

作者: 晚饭总吃撑 | 来源:发表于2020-11-11 14:57 被阅读0次

    关于数值加千位符网上有很多种方式,有的是通过截取字符串来添加千位符,这种方式很繁琐,最后翻遍百度找到一种比较简洁的方式去实现数值加千位符,下面直接上代码

    (function($){
      $.extend({
        thousandSeparator:function(number){
         var isLegal = (typeof number === "string" || typeof number === "number")&&(!isNaN(number))
         if(isLegal){
           return Number(number).toLocaleString("zh-cn")
         }
         return "非数值型无法添加千位符"    
        }
      })
    })(jQuery)
    console.log($.thousandSeparator(192837))     //返回192,837
    console.log($.thousandSeparator("192837"))   //返回192,837
    console.log($.thousandSeparator("aaa"))      //返回"非数值型无法添加千位符"
    console.log($.thousandSeparator(true))       //返回"非数值型无法添加千位符"
    console.log($.thousandSeparator([1,2,3,4]))  //返回"非数值型无法添加千位符"
    console.log($.thousandSeparator({aaa:111}))  //返回"非数值型无法添加千位符"
    console.log($.thousandSeparator(function(){}))  //返回"非数值型无法添加千位符"
    

    网上找到一个js方法toLocaleString,当一个数值类型的值通过该方法转换成字符串时会自动加上千位符,但是一个字符串型的数值通过该方法转换则不会有该效果,方法可以传入参数locales,也可以不传值,建议传值,因为每个国家对字符串转换的规则不尽相同。

    var n = 1111
    console.log(n.toLocaleString()) //1,111
    var n = "1111"
    console.log(n.toLocaleString()) //1111
    

    所以当传入的值是字符串型数值时需要通过Number方法将其转化成数值类型

    传入的值必须是数值类型,或者是字符串类型的数值,其他类型的数据将无法转换,需要注意的是返回的值是字符串

    console.log(typeof $.thousandSeparator("192837")) //string
    

    如果有什么不严谨的地方或者有更好的实现方式,欢迎批评和分享

    相关文章

      网友评论

          本文标题:数值加千位符

          本文链接:https://www.haomeiwen.com/subject/gsvebktx.html