जवाबों:
सबसे अच्छी विधि जो मैंने पाया है वह कुछ इस प्रकार है:
(ध्यान दें कि यह सरल संस्करण केवल सकारात्मक पूर्णांक के लिए काम करता है)
var myNumber = 7;
var formattedNumber = ("0" + myNumber).slice(-2);
console.log(formattedNumber);
दशमलव के लिए, आप इस कोड का उपयोग कर सकते हैं (हालांकि यह थोड़ा टेढ़ा है)।
var myNumber = 7.5;
var dec = myNumber - Math.floor(myNumber);
myNumber = myNumber - dec;
var formattedNumber = ("0" + myNumber).slice(-2) + dec.toString().substr(1);
console.log(formattedNumber);
अंत में, यदि आप नकारात्मक संख्याओं की संभावना से निपटने के लिए हैं, तो संकेत को स्टोर करना सबसे अच्छा है, संख्या के निरपेक्ष मान के लिए प्रारूपण लागू करें, और तथ्य के बाद फिर से साइन अप करें। ध्यान दें कि यह विधि संख्या को कुल 2 अंकों तक सीमित नहीं करती है। इसके बजाय यह केवल दशमलव के बाईं ओर संख्या (पूर्णांक भाग) को प्रतिबंधित करता है। (संकेत निर्धारित करने वाली रेखा यहां पाई गई थी )।
var myNumber = -7.2345;
var sign = myNumber?myNumber<0?-1:1:0;
myNumber = myNumber * sign + ''; // poor man's absolute value
var dec = myNumber.match(/\.\d+$/);
var int = myNumber.match(/^[^\.]+/);
var formattedNumber = (sign < 0 ? '-' : '') + ("0" + int).slice(-2) + (dec !== null ? dec : '');
console.log(formattedNumber);
.toPrecision()
विधि w3schools.com/jsref/jsref_topreults.asp
यदि संख्या 9 से अधिक है, तो संख्या को एक स्ट्रिंग (संगतता) में परिवर्तित करें। अन्यथा, एक शून्य जोड़ें।
function n(n){
return n > 9 ? "" + n: "0" + n;
}
n( 9); //Returns "09"
n(10); //Returns "10"
n(999);//Returns "999"
किसी भी संख्या में toLocaleString () विधि का उपयोग करें। तो नंबर 6 के लिए, जैसा कि नीचे देखा गया है, आप वांछित परिणाम प्राप्त कर सकते हैं।
(6).toLocaleString('en-US', {minimumIntegerDigits: 2, useGrouping:false})
स्ट्रिंग '06' उत्पन्न करेगा।
(6).toLocaleString(undefined, {minimumIntegerDigits: 2})
यहाँ एक साधारण संख्या का पेडिंग फंक्शन है जिसका उपयोग मैं आमतौर पर करता हूँ। यह किसी भी प्रकार की पैडिंग के लिए अनुमति देता है।
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
सभी आधुनिक ब्राउज़रों में आप उपयोग कर सकते हैं
numberStr.padStart(2, "0");
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
function zeroPad(numberStr) {
return numberStr.padStart(2, "0");
}
var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
numbers.forEach(
function(num) {
var numString = num.toString();
var paddedNum = zeroPad(numString);
console.log(paddedNum);
}
);
("0" + (date.getMonth() + 1)).slice(-2);
("0" + (date.getDay())).slice(-2);
("0" + (date.getDate())).slice(-2);
तुम कर सकते हो:
function pad2(number) {
return (number < 10 ? '0' : '') + number
}
उदाहरण:
document.write(pad2(0) + '<br />');
document.write(pad2(1) + '<br />');
document.write(pad2(2) + '<br />');
document.write(pad2(10) + '<br />');
document.write(pad2(15) + '<br />');
परिणाम:
00
01
02
10
15
ऐसा लगता है कि आपके पास संख्या के बजाय एक स्ट्रिंग हो सकती है। इसे इस्तेमाल करो:
var num = document.getElementById('input').value,
replacement = num.replace(/^(\d)$/, '0$1');
document.getElementById('input').value = replacement;
यहाँ एक उदाहरण है: http://jsfiddle.net/xtgFp/
जल्दी और गंदा एक लाइनर ...।
function zpad(n, len) {
return 0..toFixed(len).slice(2,-n.toString().length)+n.toString();
}
Number.prototype.leftPad = String.prototype.leftPad = function (pad) { return 0..toFixed(pad).slice(2, -this.toString().length) + this.toString(); };
यह सरल है और बहुत अच्छी तरह से काम करता है:
function twoDigit(number) {
var twodigit = number >= 10 ? number : "0"+number.toString();
return twodigit;
}
यहाँ एक बहुत ही सरल उपाय है जो मेरे लिए अच्छा काम करता है।
पहले अपना नंबर धारण करने के लिए एक चर घोषित करें।
var number;
अब संख्या को एक स्ट्रिंग में परिवर्तित करें और इसे दूसरे चर में पकड़ें;
var numberStr = number.toString();
अब आप इस स्ट्रिंग की लंबाई का परीक्षण कर सकते हैं, यदि यह वांछित से कम है तो आप शुरुआत में 'शून्य' जोड़ सकते हैं।
if(numberStr.length < 2){
number = '0' + number;
}
अब वांछित संख्या का उपयोग करें
console.log(number);
पिछले उत्तर का उन्नत संस्करण
function atLeast2Digit(n){
n = parseInt(n); //ex. if already passed '05' it will be converted to number 5
var ret = n > 9 ? "" + n: "0" + n;
return ret;
}
alert(atLeast2Digit(5));
मुझे पता है कि यह एक प्राचीन पोस्ट है, लेकिन मैं एक अधिक लचीला और OO समाधान विकल्प प्रदान करना चाहता था।
मैंने स्वीकार्य उत्तर को थोड़ा सा बढ़ा दिया है और Number
समायोज्य शून्य पैडिंग के लिए अनुमति देने के लिए जावास्क्रिप्ट की वस्तु को बढ़ाया है :
Number.prototype.zeroPad = function(digits) {
var loop = digits;
var zeros = "";
while (loop) {
zeros += "0";
loop--;
}
return (this.toString().length > digits) ?
this.toString() : (zeros + this).slice(-digits);
}
var v = 5;
console.log(v.zeroPad(2)); // returns "05"
console.log(v.zeroPad(4)); // returns "0005"
संपादित करें: अपने अनुरोधित अंकों से अधिक नंबर काटने से रोकने के लिए कोड जोड़ें।
नोट: यह सभी लेकिन IE में अप्रचलित है। padStart()
इसके बजाय उपयोग करें ।
जावास्क्रिप्ट के लिए कोई अंतर्निहित संख्या सूत्रकार नहीं है, लेकिन कुछ पुस्तकालय हैं जो इसे पूरा करते हैं:
<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>
यहां एक सरल पुनरावर्ती समाधान है जो अंकों की किसी भी संख्या के लिए काम करता है।
function numToNDigitStr(num, n)
{
if(num >= Math.pow(10, n - 1)) { return num; }
return "0" + numToNDigitStr(num, n-1);
}
यदि आपके पास अपनी परियोजना में दर्ज नहीं है, तो यह केवल एक फ़ंक्शन का उपयोग करने के लिए पूरे पुस्तकालय को जोड़ने के लिए एक ओवरकिल होगा। यह आपकी समस्या का सबसे परिष्कृत समाधान है जिसे मैंने कभी देखा है।
_.padStart(num, 2, '0')
यहाँ मेरा संस्करण है। आसानी से अन्य परिदृश्यों के लिए अनुकूलित किया जा सकता है।
function setNumericFormat(value) {
var length = value.toString().length;
if (length < 4) {
var prefix = "";
for (var i = 1; i <= 4 - length; i++) {
prefix += "0";
}
return prefix + value.toString();
}
return value.toString();
}
function colorOf(r,g,b){
var f = function (x) {
return (x<16 ? '0' : '') + x.toString(16)
};
return "#" + f(r) + f(g) + f(b);
}
इस फ़ंक्शन के साथ आप अपने इच्छित किसी भी एन अंकों के साथ प्रिंट कर सकते हैं
function frmtDigit(num, n) {
isMinus = num < 0;
if (isMinus)
num *= -1;
digit = '';
if (typeof n == 'undefined')
n = 2;//two digits
for (i = 1; i < n; i++) {
if (num < (1 + Array(i + 1).join("0")))
digit += '0';
}
digit = (isMinus ? '-' : '') + digit + num;
return digit;
};
मेरा उदाहरण होगा :
<div id="showTime"></div>
function x() {
var showTime = document.getElementById("showTime");
var myTime = new Date();
var hour = myTime.getHours();
var minu = myTime.getMinutes();
var secs = myTime.getSeconds();
if (hour < 10) {
hour = "0" + hour
};
if (minu < 10) {
minu = "0" + minu
};
if (secs < 10) {
secs = "0" + secs
};
showTime.innerHTML = hour + ":" + minu + ":" + secs;
}
setInterval("x()", 1000)
`${number}`.replace(/^(\d)$/, '0$1');
रेगेक्स सबसे अच्छा है।
मैंने एक बहुत ही सरल प्रारूप फ़ंक्शन का निर्माण किया, जिसे मैं जब भी कहता हूं, मुझे एक साधारण तिथि की आवश्यकता होती है। जब वे 10. अंक से कम होते हैं, तो एकल अंकों को दोहरे अंकों में प्रारूपित करने का काम करता हैSat Sep 29 2018 - 00:05:44
इस फ़ंक्शन का उपयोग एक बर्तन चर के हिस्से के रूप में किया जाता है, इसलिए इसे इस प्रकार कहा जाता है:
let timestamp = utils._dateFormatter('your date string');
var utils = {
_dateFormatter: function(dateString) {
let d = new Date(dateString);
let hours = d.getHours();
let minutes = d.getMinutes();
let seconds = d.getSeconds();
d = d.toDateString();
if (hours < 10) {
hours = '0' + hours;
}
if (minutes < 10) {
minutes = '0' + minutes;
}
if (seconds < 10) {
seconds = '0' + seconds;
}
let formattedDate = d + ' - ' + hours + ':' + minutes + ':' + seconds;
return formattedDate;
}
}
ES6 एरो फ़ंक्शंस के लिए अपडेट किया गया (लगभग सभी आधुनिक ब्राउज़रों में समर्थित, CanIUse देखें )
const formatNumber = n => ("0" + n).slice(-2);