JavaScript-js如何给数字从右边每三位添加一个逗号

JavaScript-js如何给数字从右边每三位添加一个逗号

虐人心 发布于 2016-12-13 字数 236 浏览 1175 回复 3

可能重复的问题
PHP和JS实现比较大的数以“,”做分隔符分隔,如何做?

var str = '12345'; 得到12,345。求简单的实现方法。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

清晨说ぺ晚安 2017-09-16 3 楼

var s = '12345';
s.replace(/(d)(?=(d{3})+(?!d))/g, "$1,")

利用肯定环视,找到一位数字且右边有若干组3位数字,则在当前数字后面跟上一个逗号

虐人心 2017-05-08 2 楼

请参见“javascript :数字格式化输出 ”

一下部分来源于原文:
---------------------------

<script type="text/javascript">
var format = function (number, form) {
var forms = form.split('.'), number = '' + number, numbers = number.split('.')
, leftnumber = numbers[0].split('')
, exec = function (lastMatch) {
if (lastMatch == '0' || lastMatch == '#') {
if (leftnumber.length) {
return leftnumber.pop();
} else if (lastMatch == '0') {
return lastMatch;
} else {
return '';
}
} else {
return lastMatch;
}
}, string

string = forms[0].split('').reverse().join('').replace(/./g, exec).split('').reverse().join('');
string = leftnumber.join('') + string;

if (forms1 && forms1.length) {
leftnumber = (numbers1 && numbers1.length) ? numbers1.split('').reverse() : [];
string += '.' + forms1.replace(/./g, exec);
}
return string.replace(//.$/, '');
};

alert(format(123, '#.00')) //输出 123.00
alert(format(123, '0.##')) //输出 123
alert(format(123, '0000.00 ')) //输出 0123.00
alert(format(123456, '###,###.00')) //输出 123,456.00
</script>

甜柠檬 2017-02-22 1 楼

<script>
function f(){
var str = '123456789',length = str.length,a = (length - 1) / 3,m = length % 3,i,s,result;
m = m==0?3:m
s = str.substr(0,m);
for(i=1;i<a;i++){
s = s.concat(',');
s = s.concat(str.substr(m+3*(i-1),3));

}
console.log(s);
}
f();
</script>