//正则表达式实现千位分隔符 function format(num){ var reg = /\d{1,3}(?=(\d{3})+$)/g; return (num + ‘‘).replace(reg, ‘$&,‘); } console.log(format(13123903243)); //13,123,903,243
解释:
正则表达式 \d{1,3}(?=(\d{3})+$) 表示前面有1~3个数字,后面的至少由一组3个数字结尾。
?=表示正向引用,可以作为匹配的条件,但匹配到的内容不获取,并且作为下一次查询的开始。
$& 表示与正则表达式相匹配的内容。
//常规循环方法实现千位分隔符 function format1(num){ num = num + ‘‘; //数字转字符串 var str = ""; for(var i=num.length-1,j=1; i>=0; i--,j++){ if(j%3==0 && i!=0){ //每隔三位加逗号,过滤正好在第一个数字的情况 str += num[i] + ‘,‘; //加千分位逗号 continue; } str += num[i]; } return str.split(‘‘).reverse().join(‘‘); //字符串=>数组=>反转=>字符串 } console.log(format1(13123903243)); //13,123,903,243
时间: 2024-10-16 15:59:41