JQuery का उपयोग करके संख्या के सामने अतिरिक्त शून्य जोड़ना?


83

मेरे पास फ़ाइल है जो अपलोड की गई हैं जो इस तरह स्वरूपित हैं

MR १

MR २

एमआर 100

एमआर 200

एमआर 300

आदि।

मुझे क्या करने की ज़रूरत है एमआर 10 से पहले कुछ भी अतिरिक्त दो 00s जोड़ने और MR10-99 से पहले एक अतिरिक्त 0 जोड़ें

तो फ़ाइलें स्वरूपित हैं

एमआर 001

एमआर 010

एमआर 076

आदि।

कोई भी मदद बहुत अच्छी रहेगी!


3
jQuery यहां आपकी मदद नहीं करेगा (कम से कम प्रारूपण सामग्री के लिए नहीं) ... लेकिन आप फ़ाइल का उपयोग कैसे करते हैं? आप इसे कैसे प्राप्त कर सकते हैं? किसी तरह संदर्भ स्पष्ट नहीं है। कृपया कम से कम कुछ कोड प्रदान करें, ताकि हम समस्या को बेहतर ढंग से समझ सकें।
— फेलिक्स क्लिंग

@FelixKling फ़ाइलें प्रासंगिक नहीं हैं। वह प्रारूपण के बारे में पूछ रहा है।
— felwithe

जवाबों:


215

मान लें कि आपके पास कुछ स्ट्रिंग में संग्रहीत मान हैं, तो यह प्रयास करें:

function pad (str, max) {
  str = str.toString();
  return str.length < max ? pad("0" + str, max) : str;
}

pad("3", 3);    // => "003"
pad("123", 3);  // => "123"
pad("1234", 3); // => "1234"

var test = "MR 2";
var parts = test.split(" ");
parts[1] = pad(parts[1], 3);
parts.join(" "); // => "MR 002"

3
मुझे पता है कि यह पुराना है, लेकिन इस समारोह ने मेरी मदद की और मुझे लगा कि मैं इसे जोड़ूंगा। यह पूर्णांक या नाव चर के लिए जैसे रूपांतरण प्रदर्शन करेंगे, जिसका अर्थ है आप कर सकते हैं pad(85, 5)और साथ ही के रूप में pad("85", 5)। return (str).toString().length < max ? pad("0" + (str).toString(), max) : (str).toString();
— रेमी ब्रेटन

7
@ RémiBreton आपका फ़ंक्शन कई बार उपयोग करता है .toString()। मुझे लगता है कि यह बेहतर होगाfunction pad (str, max) { str=str.toString(); function main(str,max){ return str.length < max ? main("0" + str, max) : str; } return main(str,max); }
— ओरियल

2
String.prototype.padLeft = function padLeft (length, अग्रणीचेयर) {if (अग्रणीकर === अपरिभाषित) अग्रणीChar = "0"; यह लौटाएँ। लंबाई <लंबाई? (अग्रणीचेयर + यह) .पैडलफ्ट (लंबाई, अग्रणीचेयर): यह; };
— टिम वेलेंटाइन

35

मेरे पास एक संभावित समाधान है, जो मुझे लगता है कि पुनरावर्तन है, मैंने इसके बारे में यहां पोस्ट किया है:

https://www.facebook.com/antimatterstudios/posts/10150752380719364

मूल रूप से, आप 2 या 3 की न्यूनतम लंबाई चाहते हैं, तो आप समायोजित कर सकते हैं कि आपने इस कोड में कितने 0 डाल दिए हैं

var d = new Date();
var h = ("0"+d.getHours()).slice(-2);
var m = ("0"+d.getMinutes()).slice(-2);
var s = ("0"+d.getSeconds()).slice(-2);

मुझे पता था कि मुझे न्यूनतम (कारण 1, घंटा 2) आदि के रूप में हमेशा एक ही पूर्णांक मिलेगा, लेकिन अगर आपको कुछ भी नहीं मिल सकता है, लेकिन एक खाली स्ट्रिंग है, तो आप बस "000" + d.getHours (कर सकते हैं) ) यह सुनिश्चित करने के लिए कि आप न्यूनतम प्राप्त करें।

तो आप 3 नंबर चाहते हैं? बस अपने कोड में -2 के बजाय -3 का उपयोग करें, मैं सिर्फ यह लिख रहा हूं क्योंकि मैं एक सुपर आसान तरीके से 24 घंटे की घड़ी का निर्माण करना चाहता था।


22

नोट: यदि आप नवीनतम ECMAScript का उपयोग कर रहे हैं तो अपडेट 2 देखें ...


यहाँ एक समाधान मुझे इसकी सादगी के लिए एक समान प्रश्न के उत्तर से पसंद आया :

var n = 123

String('00000' + n).slice(-5); // returns 00123
('00000' + n).slice(-5);       // returns 00123

अपडेट करें

जैसा कि @RWC ने सुझाव दिया है कि आप इस तरह से एक सामान्य कार्य में इसे अच्छी तरह से लपेट सकते हैं:

function leftPad(value, length) { 
    return ('0'.repeat(length) + value).slice(-length); 
}

leftPad(123, 5); // returns 00123

और जो टुकड़ा पसंद नहीं करते हैं उनके लिए:

function leftPad(value, length) {
    value = String(value);
    length = length - value.length;
    return ('0'.repeat(length) + value)
}

लेकिन यदि प्रदर्शन मायने रखता है तो मैं सुझाए गए समाधानों को चुनने से पहले लिंक किए गए उत्तर के माध्यम से पढ़ने की सलाह देता हूं।

अद्यतन २

ES6 में स्ट्रिंग वर्ग अब एक इनबिल्ट padStartविधि के साथ आता है जो एक स्ट्रिंग में अग्रणी वर्ण जोड़ता है। संदर्भ के लिए एमडीएन यहां देखेंString.prototype.padStart() । और padEndपात्रों को समाप्त करने की एक विधि भी है ।

तो ES6 के साथ यह उतना ही सरल हो गया:

var n = 123;
n.padStart(5, '0'); // returns 00123

3
बेहतर संस्करण: फ़ंक्शन बाएंपैड (मूल्य, अधिकतम गति) {रिटर्न स्ट्रिंग ('0'.repeat (maxLength) + मान) .slice (-maxLength); }
— आरडब्ल्यूसी

7
function addLeadingZeros (n, length)
{
    var str = (n > 0 ? n : -n) + "";
    var zeros = "";
    for (var i = length - str.length; i > 0; i--)
        zeros += "0";
    zeros += str;
    return n >= 0 ? zeros : "-" + zeros;
}

//addLeadingZeros (1, 3) =   "001"
//addLeadingZeros (12, 3) =  "012"
//addLeadingZeros (123, 3) = "123"

दूसरे शब्दों में: इसे स्ट्रिंग में बदलें, फिर शून्य से पैड करें ।
— पेवियम

4

यह वह फ़ंक्शन है जो मैं आमतौर पर अपने कोड में एक संख्या या स्ट्रिंग के लिए शून्य को प्रीपेन्ड करने के लिए उपयोग करता हूं।

इनपुट स्ट्रिंग या संख्या (str), और आउटपुट की वांछित लंबाई (लेन) हैं।

var PrependZeros = function (str, len) {
    if(typeof str === 'number' || Number(str)){
    str = str.toString();
    return (len - str.length > 0) ? new Array(len + 1 - str.length).join('0') + str: str;
}
else{
    for(var i = 0,spl = str.split(' '); i < spl.length; spl[i] = (Number(spl[i])&& spl[i].length < len)?PrependZeros(spl[i],len):spl[i],str = (i == spl.length -1)?spl.join(' '):str,i++);
    return str;
}

};

उदाहरण:

PrependZeros('MR 3',3);    // MR 003
PrependZeros('MR 23',3);   // MR 023
PrependZeros('MR 123',3);  // MR 123
PrependZeros('foo bar 23',3);  // foo bar 023

2

यदि आप अंतरिक्ष में विभाजित हैं, तो आप एक साधारण फ़ंक्शन का उपयोग करके अग्रणी शून्य जोड़ सकते हैं:

function addZeros(n) {
  return (n < 10)? '00' + n : (n < 100)? '0' + n : '' + n;
}

तो आप स्ट्रिंग की लंबाई का परीक्षण कर सकते हैं और अगर यह 6 से कम है, तो अंतरिक्ष पर विभाजित करें, संख्या में शून्य जोड़ें, फिर इसे वापस एक साथ जोड़ दें।

या एक नियमित अभिव्यक्ति के रूप में:

function addZeros(s) {
  return s.replace(/ (\d$)/,' 00$1').replace(/ (\d\d)$/,' 0$1');
}

मुझे यकीन है कि कोई इसे एक की जगह ले सकता है, दो की नहीं।

संपादित करें - उदाहरण

alert(addZeros('MR 3'));    // MR 003
alert(addZeros('MR 23'));   // MR 023
alert(addZeros('MR 123'));  // MR 123
alert(addZeros('foo bar 23'));  // foo bar 023

यह एक स्ट्रिंग के अंत में एक संख्या के एक या दो शून्य को सामने रखे स्थान के साथ रखेगा। यह परवाह नहीं करता कि अंतरिक्ष से पहले बिट क्या है।


अगर कोई कहता है कि अगर किसी दस्तावेज में MR 003 है तो क्या हम 0s आदि को जोड़ने पर ध्यान नहीं दे सकते हैं
— Chill Web Designs

2

बस एक हंसी के लिए यह लंबा बुरा तरीका है ....:
(नोट: ive यह इस्तेमाल नहीं किया है, और मैं इस का उपयोग करने की सलाह नहीं देंगे!)

function pad(str, new_length) {
    ('00000000000000000000000000000000000000000000000000' + str).
    substr((50 + str.toString().length) - new_length, new_length)
}

1

मुझे अपने आप को दूसरे दिन इस तरह की आवश्यकता थी, पुड हमेशा 0 के बजाय, मैं यह बताना चाहता था कि मैं सामने वाले को गद्देदार बनाना चाहता था। यहाँ मैं कोड के लिए आया था:

function lpad(n, e, d) {
  var o = ''; if(typeof(d) === 'undefined'){ d='0'; } if(typeof(e) === 'undefined'){ e=2; }
  if(n.length < e){ for(var r=0; r < e - n.length; r++){ o += d; } o += n; } else { o=n; }
  return o; }

जहाँ n आप गद्देदार चाहते हैं, e वह शक्ति है जिसे आप चाहते हैं कि इसे गद्देदार किया जाए (वर्णों की संख्या लंबी होनी चाहिए), और d जो आप इसे गद्देदार बनाना चाहते हैं। लगता है कि इसके लिए मुझे जो चाहिए, उसके लिए अच्छा काम करना है, लेकिन अगर "घ" एक से अधिक चरित्र लंबा है तो यह विफल हो जाएगा।


1
var str = "43215"; 
console.log("Before : \n string :"+str+"\n Length :"+str.length);
var max = 9;
while(str.length < max ){
                                str = "0" + str;

                        }
console.log("After : \n string :"+str+"\n Length :"+str.length);

यह मेरे लिए काम किया! शून्य बढ़ाने के लिए, ' अधिकतम ' चर को अपडेट करें

वर्किंग फिडेल URL: jQuery का उपयोग करके किसी संख्या के सामने अतिरिक्त शून्य जोड़ना? :


1

str एक संख्या या एक स्ट्रिंग हो सकता है।

formatting("hi",3);
function formatting(str,len)
{
   return ("000000"+str).slice(-len);
}

यदि बड़े अंकों की आवश्यकता हो तो अधिक शून्य जोड़ें


0

सरल शब्दों में हम इस प्रकार लिख सकते हैं,

for(var i=1;i<=31;i++)
    i=(i<10) ? '0'+i : i;

// क्योंकि अधिकांश समय हमें दिन, महीने या राशि के मामलों के लिए इसकी आवश्यकता होती है।


0

जानिए यह एक पुरानी पोस्ट है, लेकिन यहाँ एक और छोटा, प्रभावी तरीका है: शून्य

संपादित करें: Dur। यदि संख्या स्ट्रिंग नहीं है, तो आप जोड़ देंगे:

len -= String(num).length;

और, यह सब अच्छा है

function addLeadingZeros(sNum, len) {
    len -= sNum.length;
    while (len--) sNum = '0' + sNum;
    return sNum;
}

0

100 को संख्या में जोड़कर, फिर इंडेक्स 1 से अंतिम स्थिति में एक विकल्प फ़ंक्शन को दाईं ओर चलाएं।

var dt = new Date();
var month = (100 + dt.getMonth()+1).toString().substr(1, 2);
var day = (100 + dt.getDate()).toString().substr(1, 2);

console.log(month,day);

आपको यह परिणाम 2020-11-3 की तारीख से मिलेगा

11,03

मुझे आशा है कि उत्तर उपयोगी है


-1

निम्नलिखित का प्रयास करें, जो शून्य और पूर्व अंकों की संख्या को 3 अंकों की संख्या में बदलकर शून्य को उपसर्ग कर देगा।

var base_number = 2;
var zero_prefixed_string = ("000" + base_number).slice(-3);

हालांकि यह कोड प्रश्न का हल प्रदान कर सकता है, इसलिए संदर्भ जोड़ना बेहतर है कि यह क्यों / कैसे काम करता है। यह भविष्य के उपयोगकर्ताओं को सीखने में मदद कर सकता है, और उस ज्ञान को अपने कोड में लागू कर सकता है। जब कोड समझाया जाता है तो आपको उपयोगकर्ताओं से upvotes के रूप में सकारात्मक प्रतिक्रिया मिलने की संभावना होती है।
— बोरवम

तदनुसार ही संशोधित और संशोधित।
— विवेक शिरोडकर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.