使用纯javascript格式化数字
Format number using pure javascript
我写了一个代码来计算票数。我得到的输出是138405150000等
我希望这些数字的格式像这样138405。如何使用纯javascript实现这一点?
根据您的浏览器目标,您可以使用Number.prototype.toLocaleString()
,它将根据您可以指定的区域设置来格式化您的数字。示例在下面的链接页面上。
请参阅https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
例如:
var number = 123456.789;
console.log(number.toLocaleString('en-US'));
// → 123,456.789
如果未指定区域设置,则将使用用户浏览器区域设置。
您需要首先决定什么是约定。您希望逗号分隔两位还是三位?
按照惯例,让我们想象一下是3。
1000
应变为1, 000
10000
应变为10,000
100000
应变为100,000
1000000
应变为1,000,000
实现这一点的代码可能很琐碎,比如:
function formatWithComma(interval, num) {
const digits = String(num).split('').reverse();
const output = [];
digits.forEach(function (digit, index, digits) {
output.push(digit);
if ((index + 1) % interval === 0 && (index + 1) < digits.length) {
output.push(',');
}
});
return output.reverse().join('');
}
调用此函数时,需要插入逗号的间隔和用于构建格式化字符串的数字。
formatWithComma(3, 12345) === "12,345"
formatWithComma(2, 12345) === "1,23,45"
您可以更进一步,使用Javascript的部分应用程序机制创建一个预加载了第一个参数的格式函数。
var format = formatWithComma.bind(this, 3);
之后,对format
的任何调用都会在每3位数字处插入逗号。
我想出了这个函数。它对我来说很好。
function addCommas(nStr) {
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /('d+)('d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
相关文章:
- 使用纯javascript格式化数字
- 用javascript格式化数字,而不进行更改
- Java脚本插件,用于将数字转换为特定于区域性的货币格式,并将具有特定货币格式的非格式化数字转换为普通数字
- jQuery(或Javascript)基于给定的C#/VBA/Java格式字符串格式化数字的方法
- 格式化数字,如22,55,86,21,28
- Javascript-格式化数字,始终显示原始的小数位数
- 使用 javascript 格式化数字
- Chrome告诉“Invaild Group”使用正则表达式来格式化数字
- 在 javascript 中用指数格式化数字
- 使用 jquery 编号格式化程序格式化数字并重新格式化它们
- Javascript - 用正则表达式替换字符串以格式化数字
- 如何使用 jQuery 格式化数字
- 剑道在网格中格式化数字
- 在谷歌脚本中格式化数字
- Javascript 用逗号和点格式化数字
- 如何以特定方式格式化数字
- 在 JavaScript 中格式化数字
- 在Dojo中格式化数字
- 通过ExtJS或javascript格式化数字
- 用撇号作为千位分隔符格式化数字