我想把一个数格式化为两位数。这个问题是在传递0-9时引起的,所以我需要将它格式化为00-09。
JavaScript中有数字格式化器吗?
我想把一个数格式化为两位数。这个问题是在传递0-9时引起的,所以我需要将它格式化为00-09。
JavaScript中有数字格式化器吗?
当前回答
这是一个非常好的和简短的解决方案:
smartTime(time) {
return time < 10 ? "0" + time.toString().trim() : time;
}
其他回答
这是我发现的最简单的解决方法:-
let num = 9; // any number between 0 & 99
let result = ( '0' + num ).substr( -2 );
JavaScript没有内置的数字格式化器,但是有一些库可以实现这个功能:
下划线。String提供了sprintf函数(以及许多其他有用的格式化方法) Javascript-sprintf,其中下划线。字符串借用。
这是一个简单的数字填充函数,我经常使用。它允许任意数量的填充。
function leftPad(number, targetLength) {
var output = number + '';
while (output.length < targetLength) {
output = '0' + output;
}
return output;
}
例子:
leftPad(1, 2) // 01
leftPad(10, 2) // 10
leftPad(100, 2) // 100
leftPad(1, 3) // 001
leftPad(1, 8) // 00000001
这里有一个非常简单的解决方法,对我来说很有效。
首先声明一个变量来保存你的号码。
var number;
现在将数字转换为字符串,并将其保存在另一个变量中;
var numberStr = number.toString();
现在你可以测试这个字符串的长度,如果它小于你想要的长度,你可以在开头追加一个' 0 '。
if(numberStr.length < 2){
number = '0' + number;
}
现在根据需要使用数字
console.log(number);
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#test').keypress(allowOnlyTwoPositiveDigts);
});
function allowOnlyTwoPositiveDigts(e){
var test = /^[\-]?[0-9]{1,2}?$/
return test.test(this.value+String.fromCharCode(e.which))
}
</script>
</head>
<body>
<input id="test" type="text" />
</body>
</html>