JavaScript数字千分位格式化

快乐打工仔 分类:实例代码

JavaScript数字千分位格式化属于前端实例代码,有关更多实例代码大家可以查看

本章节分享一段代码实例,它实现了数字千分位格式化效果,具有不错的实用性。

代码实例如下:

function toThousands(num) {
  var num = (num || 0).toString(), re = /\d{3}$/, result = '';
  while ( re.test(num) ) {
    result = RegExp.lastMatch + result;
    if (num !== RegExp.lastMatch) {
      result = ',' + result;
      num = RegExp.leftContext;
    } 
    else {
      num = '';
      break;
    }
  }
  if (num) { 
    result = num + result; 
  }
  return result;
}
console.log(toThousands(314518565))

上面的代码实现了格式化效果,下面介绍一下它的实现过程。

一.代码注释:

(1).function toThousands(num) {},此函数实现了格式化效果。

(2).num = (num || 0).toString(),如果没有传递num,则数字的默认值是0,并转换为字符串。

(3).re = /\d{3}$/,此正则表达式可以匹配三位数字。

(4).result = '',声明一个变量用来存储转换结果。

(5).while ( re.test(num) ){},一个循环语句,判断num是否匹配指定的正则表达式。

(6).result = RegExp.lastMatch + result,将最后一次匹配的字符串和result字符串连接起来。

(7).if (num !== RegExp.lastMatch) {

  result = ',' + result;

  num = RegExp.leftContext;

},如果num不等于最后匹配的字符串,那么再result前面加逗号,然后将num的值赋值为最后匹配前面的字符串。

(8).else {

  num = '';

  break;

},如果等于的话,就将num赋值为空,跳出循环。

(9).if (num) { 

  result = num + result; 

},既然跳出循环了,说明num要么是空,要么是小于三位的数字,然后和result连接起来。

(10)return result,返回最后的结果。

二.相关阅读:

(1).while参阅javascript while语句一章节。

(2).RegExp.lastMatch参阅正则表达式RegExp.lastMatch一章节。

(3).RegExp.lastMatch参阅正则表达式RegExp.leftContext一章节。

JavaScript数字千分位格式化,这样的场景在实际项目中还是用的比较多的,关于JavaScript数字千分位格式化就介绍到这了。

回复

我来回复
  • 暂无回复内容