设置数字格式,长度正好为二
Format a Number, Exactly Two in Length?
我有一个小于100的整数,并用JavaScript打印到HTML页面。如何格式化整数,使其正好有两位数长?例如:
01
02
03
…
09
10
11
12
…
更新
这个答案写于2011年。2021年版本见刘变涛的回答。
原件
function pad(d) {
return (d < 10) ? '0' + d.toString() : d.toString();
}
pad(1); // 01
pad(9); // 09
pad(10); // 10
String("0" + x).slice(-2);
其中x
是您的号码。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
String(number).padStart(2, '0')
只需使用以下简短函数即可获得所需结果:
function pad2(number) {
return (number < 10 ? '0' : '') + number
}
在Javascript中向左填充数字的一种直接方法是以10为基数计算位数。例如:
function padLeft(positiveInteger, totalDigits) {
var padding = "00000000000000";
var rounding = 1.000000000001;
var currentDigits = positiveInteger > 0 ? 1 + Math.floor(rounding * (Math.log(positiveInteger) / Math.LN10)) : 1;
return (padding + positiveInteger).substr(padding.length - (totalDigits - currentDigits));
}
舍入因子解决了无法获得10次方的精确对数的问题,例如Math.log(1000(/Math.LN10==2.9999999999999996当然,应该添加参数验证。
// Return a string padded
function FormatMe(n) {
return (n<10) ? '0'+n : n;
}
function leftFillNum(num, targetLength) {
return num.toString().padStart(targetLength, '0');
}
console.log(leftFillNum(3,2)); // ==> returns '03'
console.log(leftFillNum(33,2)); // ==> returns '33'
console.log(leftFillNum(3,4)); // ==> returns '0003'
console.log(leftFillNum(33,5)); // ==> returns '00033'
function padLeft(a, b) {
var l = (a + '').length;
if (l >= b) {
return a + '';
} else {
var arr = [];
for (var i = 0; i < b - l ;i++) {
arr.push('0');
}
arr.push(a);
return arr.join('');
}
}
我通常使用这个函数。
function pad(n, len) {
let l = Math.floor(len)
let sn = '' + n
let snl = sn.length
if(snl >= l) return sn
return '0'.repeat(l - snl) + sn
}
使用示例
pad(1, 1) // ==> returns '1' (string type)
pad(384, 5) // ==> returns '00384'
pad(384, 4.5)// ==> returns '0384'
pad(5555, 2) // ==> returns '5555'
const threeDigit = num => num.toString().padStart(3 , '0');
函数将数字转换为字符串,然后返回数字的三位数版本
我使用regex来格式化我的时间,例如
const str='12:5'
const final=str.replace(/''d+/g,(match,offset,string(=>match<10?'0'+匹配:匹配(
输出:12:05
以前答案的改进版本:
var result = [...Array(12)].map((_, i) => zeroFill(i + 1, 2));
function zeroFill(num, size) {
let s = num + '';
while (s.length < size) s = `0${s}`;
return s;
}
console.log(result)
lodash有padStart,https://lodash.com/docs/4.17.15#padStart
padStart(1,2,'0'(它将填充1=>01,它不会处理负数,因为-将被视为填充
显示了一个示例,以确保999以内的每个数字的长度为3,该代码不言自明且简单
function formatter(d) {
if (d < 1000) {
if (d < 10) {
return `00${d}`;
} else if (d < 100) {
return `0${d}`;
} else {
return `${d}`;
}
} else {
return `Enter valid number`;
}
}
相关文章:
- Mustache.js lambdas和数字格式设置为Fixed
- moment.js年份/数字格式,阿拉伯语言环境
- 将数字格式化为货币,两位小数
- 使用角度数字格式过滤器格式化值
- 剑道 UI - 自定义数字格式在 2015.3.1111 > 2016.1.412 之间更改
- j查询和数字格式
- 用于数字格式的javascript正则表达式
- 通过.toString()设置数字格式
- excel中数字格式时的小数位数
- 弹性(到固定)数字格式
- Opera中的JSON解析抛出“非法数字格式(尾随小数点)”
- 如何使用css将数字格式化为逗号分隔
- 更改javascript中的数字格式
- 使用javascript将两种数字格式相加以返回长数字
- jQuery - 数字格式的小片段无法按预期工作
- 工具提示中的 Google 日历图表数字格式
- 在 javascript 中将数字格式化为字符串
- 如何将包含科学记数法的字符串转换为正确的 Javascript 数字格式
- Dijit DateTextBox - 以 ISO/数字格式设置日期
- 用于数字格式的常规快递