আমি দুটি সংখ্যার জন্য একটি সংখ্যার ফর্ম্যাট করতে চাই। সমস্যা যখন সৃষ্টি হয় 0
- 9
, পাস করা হয়েছে তাই আমি এটি ফরম্যাট করা প্রয়োজন 00
- 09
।
জাভাস্ক্রিপ্টে একটি সংখ্যা বিন্যাস আছে?
আমি দুটি সংখ্যার জন্য একটি সংখ্যার ফর্ম্যাট করতে চাই। সমস্যা যখন সৃষ্টি হয় 0
- 9
, পাস করা হয়েছে তাই আমি এটি ফরম্যাট করা প্রয়োজন 00
- 09
।
জাভাস্ক্রিপ্টে একটি সংখ্যা বিন্যাস আছে?
উত্তর:
আমি যে সর্বোত্তম পদ্ধতিটি পেয়েছি তা হ'ল নিম্নলিখিতগুলির মতো:
(নোট করুন যে এই সাধারণ সংস্করণটি কেবল ইতিবাচক পূর্ণসংখ্যার জন্য কাজ করে)
var myNumber = 7;
var formattedNumber = ("0" + myNumber).slice(-2);
console.log(formattedNumber);
দশমিকের জন্য, আপনি এই কোডটি ব্যবহার করতে পারেন (এটি যদিও কিছুটা opালু)।
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_toprecision.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);
}
);
আপনি করতে পারেন:
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));
আমি জানি এটি একটি প্রাচীন পোস্ট, তবে আমি আরও নমনীয় এবং ওও সমাধান বিকল্প সরবরাহ করতে চেয়েছিলাম।
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"
সম্পাদনা করুন: আপনার অনুরোধ করা অঙ্কগুলির চেয়ে দীর্ঘ সংখ্যা কাটা রোধ করতে কোড যুক্ত করুন।
দ্রষ্টব্য: এটি আইই ব্যতীত সমস্ত ক্ষেত্রে অপ্রচলিত। 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);
}
যে কেউ সময়ের পার্থক্য রাখতে চায় এবং ফলাফল থাকতে পারে যে এখানে নেতিবাচক সংখ্যা নিতে পারে তার জন্য এটি ভাল। প্যাড (3) = "03", প্যাড (-2) = "-02", প্যাড (-234) = "-234"
pad = function(n){
if(n >= 0){
return n > 9 ? "" + n : "0" + n;
}else{
return n < -9 ? "" + n : "-0" + Math.abs(n);
}
}
এই ফাংশনটি দিয়ে আপনি যে কোনও এন ডিজিট দিয়ে মুদ্রণ করতে পারেন
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');
রিজেক্স সেরা।
আমি একটি খুব সাধারণ ফর্ম্যাট ফাংশনটি তৈরি করেছি যা যখনই আমার ডায়াল্ট করার জন্য সাধারণ তারিখের প্রয়োজন হয় তখনই আমি কল করি। এটি একক অঙ্কগুলি দশ বছরের কম হলে ডাবল ডিজিটে ফর্ম্যাট করার কাজ করে ItSat 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);