स्ट्रिंग के अंतिम दो वर्णों को हटाने का एक सरल तरीका है?
जवाबों:
245px245 रन में बदलने के लिए :
parseInt('245px', 10);
यह केवल अग्रणी संख्या को बरकरार रखता है और बाकी सभी को बचाता है।
parseInt('09')!
उपयोग
var size = parseInt('245px', 10);
जहां 10 मूलांक परिभाषित parseIntहै, एक दशमलव मान पर पार्स कर रहा है
ParseInt () फ़ंक्शन एक स्ट्रिंग को पार्स करता है और एक पूर्णांक देता है।
हस्ताक्षर है parseInt(string, radix)
दूसरा तर्क आधार को दस नंबरिंग प्रणाली का उपयोग करने के लिए बाध्य करता है।
क्यों? अगर $ (यह) .attr ('संख्या') "08" होगा तो बिना मूलांक वाला parsInt 0 हो जाएगा
अंत में "px" के बिना एक पिक्सेल मान परिवर्तित करने के लिए। parseFloat का उपयोग करें।
parseFloat('245px'); // returns 245
नोट: यदि आप parseInt का उपयोग करते हैं, तो मान पूर्णांक होने पर मान सही होगा। यदि मान 245.50px की तरह एक दशमलव एक है, तो मूल्य को 245 में गोल किया जाएगा।
parseFloat()जैसे कि मूलांक नहीं लेता है parseInt()(देखें डेवलपर. mozilla.org/en-US/docs/Web/JavaScript/Reference/… & stackoverflow.com/ प्रश्न / 8555649 /… )
हैरानी की बात है, प्रतिस्थापन विधि s.substr(0, s.length-2);वास्तव में हटाने के लिए काफी तेज़ है px(हाँ यह उतना साफ नहीं है, और अगर कोई जगह है तो वह बनी रहेगी - "250px" -> "250"बनाम"250 px" -> "250 " )।
यदि आप रिक्त स्थान (जो शायद आपको चाहिए) का उपयोग करना चाहते हैं तो .trim()फ़ंक्शन का उपयोग करके वास्तव में substrपरीक्षण को धीमा कर देगा कि एparseInt विधि वास्तव में बेहतर हो जाती है।
उपयोग करने का एक अतिरिक्त लाभ parseInt(s, 10) का यह है कि आपको एक प्रकार का रूपांतरण भी मिलता है और इसे तुरंत गणितीय कार्यों पर लागू करना शुरू कर सकते हैं।
तो अंत में, यह वास्तव में इस बात पर निर्भर करता है कि आप परिणाम के साथ क्या कर रहे हैं।
substr विधि का उपयोग किए ट्रिम के करना शायद आपका सबसे अच्छा दांव होगा।s.substr(0, s.length-2) == 0, तो substrविधि का उपयोग करना सबसे अच्छा होगा, जैसा कि"250 " == 250 (अंतरिक्ष के साथ भी) परिणाम होगाtrueparseIntमार्ग के साथ जाने पर विचार कर सकते हैं ।http://jsperf.com/remove-px-from-coord
एक अंतरिक्ष के लिए jspref खाते पर परीक्षण। मैंने भी एक s.split('px')[0]और s.replace(/ *px/g, '')फंक्शन की कोशिश की , दोनों ही धीमे पाए गए।
अतिरिक्त परीक्षण मामलों को जोड़ने के लिए स्वतंत्र महसूस करें।
Http://www.w3schools.com/jsref/jsref_substr.asp चेक करें आपके मामले में कुछ ऐसा होगा
string.substr(0, string.length - 2)
मैं पसंद करता हूं:
"245px".replace(/px/,'')*1
चूंकि यह इनपुट के आसपास नहीं है।
इसके अलावा, *1यह int के लिए कास्टिंग के लिए है।
substr()है अब एक विरासत सुविधा ; substring()इसके बजाय उपयोग करें : (सिंटैक्स इस मामले में समान है )
str.substring(0, str.length-2);
या, उपयोग करें slice():
str.slice(0, -2);
slice()बहुत साफ दिखता है, IMO। नकारात्मक मूल्य अंत से वापस आ जाते हैं।
remमूल्यों के लिए नहीं किया जा सकता है ।
parseInt('245px', 10)