【问题标题】:Jquery to add dots after 3 numbers/digitsJquery在3个数字/数字后添加点
【发布时间】:2018-03-13 14:34:43
【问题描述】:

我想在 3 个数字之后添加一个点,例如 我有一个输入,结果带有 id price

100 = 100
1000 = 1.000
10000 = 10.000
1000000 = 100.000
1000000 = 1.000.000

我需要在没有插件的情况下这样做

【问题讨论】:

标签: javascript


【解决方案1】:

你可以试试这个:

function getNumberWithCommas(number) {
    return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}

【讨论】:

    【解决方案2】:

    您可以使用函数reduceRight 使用此替代方法

    function format(str) {
      var length = 3,
        separator = ".",
        count = 0,
        result = str.split('').reduceRight((a, c) => {
          if (count === length) {
            a.push(separator);
            count = 1;
          } else count++;
          a.push(c);
          return a;
        }, []).reverse().join('');
        
        return result;
    }
    
    
    console.log(format('100'))
    console.log(format('1000'))
    console.log(format('10000'))
    console.log(format('1000000'))
    console.log(format('100000000'))
    .as-console-wrapper { max-height: 100% !important; top: 0; }

    【讨论】:

      【解决方案3】:

      只是另一种方式......但这只是为了好玩。我赞成并且您应该接受的正确答案是@Alen Nikolov 的答案。只需用正则表达式替换

        const formatNum = n => Array.from(String(n)).reverse().map((a,i) => 
        {if((i%3==0)&&(i>0))return a+"."; return a;
       }).reverse().join("");
       
        console.log(formatNum(10000000000));
        console.log(formatNum(1000000));

      【讨论】:

        【解决方案4】:

        扩展@Alen Nikolov 答案的数字版本原型。

          if (!Number.prototype.dotFormat){
             Number.prototype.dotFormat = function(){
                return this.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
             };
          }
        
          console.log( 1234567.dotFormat() );
        

        【讨论】:

          【解决方案5】:

          请测试此代码。

          var price = parseInt(priceStr);
           $(element).val(price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-01-02
            • 1970-01-01
            • 2013-10-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多