जावास्क्रिप्ट, jquery द्वारा नंबर (किसी भी स्ट्रिंग) से अग्रणी शून्य को हटाने या ट्रंक करने के लिए समाधान सुझाएं।
'00000.5'
) के साथ संख्या को संभालना चाहिए ?
जावास्क्रिप्ट, jquery द्वारा नंबर (किसी भी स्ट्रिंग) से अग्रणी शून्य को हटाने या ट्रंक करने के लिए समाधान सुझाएं।
'00000.5'
) के साथ संख्या को संभालना चाहिए ?
जवाबों:
आप स्ट्रिंग की शुरुआत में शून्य से मेल खाने वाली एक नियमित अभिव्यक्ति का उपयोग कर सकते हैं:
s = s.replace(/^0+/, '');
मैं संख्या () फ़ंक्शन का उपयोग करूंगा:
var str = "00001";
str = Number(str).toString();
>> "1"
या मैं अपने तार को 1 से गुणा करूंगा
var str = "00000000002346301625363";
str = (str * 1).toString();
>> "2346301625363"
शायद थोड़ी देर हो जाए, लेकिन मैं अपने 2 सेंट जोड़ना चाहता हूं।
यदि आपका स्ट्रिंग हमेशा एक प्रमुख संख्या का प्रतिनिधित्व करता है, तो संभव अग्रणी शून्य के साथ, आप बस '+' ऑपरेटर का उपयोग करके स्ट्रिंग को एक संख्या में डाल सकते हैं।
जैसे
x= "00005";
alert(typeof x); //"string"
alert(x);// "00005"
x = +x ; //or x= +"00005"; //do NOT confuse with x+=x, which will only concatenate the value
alert(typeof x); //number , voila!
alert(x); // 5 (as number)
यदि आपका तार एक संख्या का प्रतिनिधित्व नहीं करता है और आपको केवल 0 के अन्य समाधानों का उपयोग करने की आवश्यकता है, लेकिन यदि आपको केवल संख्या के रूप में उनकी आवश्यकता है, तो यह सबसे छोटा तरीका है।
और FYI करें, आप इसके विपरीत कर सकते हैं, संख्याओं को स्ट्रिंग्स के रूप में कार्य करने के लिए यदि आप उन्हें एक खाली स्ट्रिंग प्रदान करते हैं, जैसे:
x = 5;
alert(typeof x); //number
x = x+"";
alert(typeof x); //string
आशा है कि यह किसी की मदद करता है
चूंकि आपने "कोई भी स्ट्रिंग" कहा है, इसलिए मैं मान रहा हूं कि यह एक स्ट्रिंग है जिसे आप संभालना चाहते हैं।
"00012 34 0000432 0035"
तो, रेगेक्स जाने का रास्ता है:
var trimmed = s.replace(/\b0+/g, "");
और यह एक "000000" मूल्य के नुकसान को रोक देगा।
var trimmed = s.replace(/\b(0(?!\b))+/g, "")
आप यहां एक काम करने का उदाहरण देख सकते हैं
मुझे जावास्क्रिप्ट में अग्रणी शून्य (संख्या या किसी स्ट्रिंग) को ट्रंक करने के लिए यह समाधान मिला:
<script language="JavaScript" type="text/javascript">
<!--
function trimNumber(s) {
while (s.substr(0,1) == '0' && s.length>1) { s = s.substr(1,9999); }
return s;
}
var s1 = '00123';
var s2 = '000assa';
var s3 = 'assa34300';
var s4 = 'ssa';
var s5 = '121212000';
alert(s1 + '=' + trimNumber(s1));
alert(s2 + '=' + trimNumber(s2));
alert(s3 + '=' + trimNumber(s3));
alert(s4 + '=' + trimNumber(s4));
alert(s5 + '=' + trimNumber(s5));
// end hiding contents -->
</script>
false
। 9999
दूसरे पैरामीटर के रूप में उपयोग की substr
आवश्यकता नहीं है। बस उपयोग करें while (s.substr(0,1) == '0') s = s.substr(1);
। इसके अलावा, वह कोड स्निपेट वास्तव में पुराना लग रहा है, टैग की language
विशेषता को script
लंबे समय से हटा दिया गया है, और script
टैग के अंदर टिप्पणियों का उपयोग केवल उन ब्राउज़रों के लिए आवश्यक है जो script
टैग को बिल्कुल नहीं समझते हैं , जैसे इंटरनेट एक्सप्लोरर 1.0।
parseInt(value) or parseFloat(value)
यह अच्छी तरह से काम करेगा।
इसे इस्तेमाल करे,
function ltrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
var str =ltrim("01545878","0");
अधिक यहाँ
बस निम्नलिखित के रूप में एक से गुणा करने का प्रयास करें:
"00123" * 1; // संख्या के रूप में प्राप्त करें
"00123" * 1 + ""; // स्ट्रिंग के रूप में प्राप्त करें
आपको "parseInt" फ़ंक्शन के "मूलांक" पैरामीटर का उपयोग करना चाहिए: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parse.nt?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2 % 2FGlobal_Objects% 2FparseInt
parseInt ('015', 10) => 15
यदि आप इसका उपयोग नहीं करते हैं, तो कुछ जावास्क्रिप्ट इंजन इसे ऑक्टल पार्सइंट के रूप में उपयोग कर सकते हैं ('015') => 0
रेगेक्स के बिना एक और तरीका:
function trimLeadingZerosSubstr(str) {
var xLastChr = str.length - 1, xChrIdx = 0;
while (str[xChrIdx] === "0" && xChrIdx < xLastChr) {
xChrIdx++;
}
return xChrIdx > 0 ? str.substr(xChrIdx) : str;
}
शॉर्ट स्ट्रिंग के साथ यह रेगेक्स ( jsperf ) से अधिक तेज़ होगा