我想在3个数字后面加一个点,就像我有一个输入,其中的结果是id price
100 = 100
1000 = 1.000
10000 = 10.000
1000000 = 100.000
1000000 = 1.000.000我需要在没有插件的情况下完成
发布于 2018-03-13 22:50:12
你可以试试这个:
function getNumberWithCommas(number) {
return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}发布于 2018-03-13 23:01:14
您可以使用函数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; }
发布于 2018-03-13 23:11:16
另一种方式..。但这只是为了好玩。我支持的正确答案是@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));
https://stackoverflow.com/questions/49258913
复制相似问题