首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery在3个数字/数字后加点

Jquery在3个数字/数字后加点
EN

Stack Overflow用户
提问于 2018-03-13 22:34:43
回答 5查看 3.8K关注 0票数 1

我想在3个数字后面加一个点,就像我有一个输入,其中的结果是id price

代码语言:javascript
复制
100 = 100
1000 = 1.000
10000 = 10.000
1000000 = 100.000
1000000 = 1.000.000

我需要在没有插件的情况下完成

EN

回答 5

Stack Overflow用户

发布于 2018-03-13 22:50:12

你可以试试这个:

代码语言:javascript
复制
function getNumberWithCommas(number) {
    return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}
票数 7
EN

Stack Overflow用户

发布于 2018-03-13 23:01:14

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

代码语言:javascript
复制
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'))
代码语言:javascript
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }

票数 2
EN

Stack Overflow用户

发布于 2018-03-13 23:11:16

另一种方式..。但这只是为了好玩。我支持的正确答案是@Alen Nikolov的答案,你应该接受。只需替换为正则表达式

代码语言:javascript
复制
  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));

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49258913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档