स्ट्रिंग के अंतिम दो वर्णों को हटाने का एक सरल तरीका है?
जवाबों:
245px
245 रन में बदलने के लिए :
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
(अंतरिक्ष के साथ भी) परिणाम होगाtrue
parseInt
मार्ग के साथ जाने पर विचार कर सकते हैं ।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)