245px से "px" कैसे हटाएं


जवाबों:


182

245px245 रन में बदलने के लिए :

parseInt('245px', 10);

यह केवल अग्रणी संख्या को बरकरार रखता है और बाकी सभी को बचाता है।


7
यह सबसे निंदनीय तरीका है, लेकिन आपको हमेशा मूलांकparseInt('245px', 10)
जस्टिन जॉनसन

आप सही कह रहे हैं: (0) डिफॉल्ट ऑक्टल है जब स्ट्रिंग '0' से शुरू होती है ... मुझे कितनी बार त्रुटि हुई parseInt('09')!
डॉन

4
जब आप 35.5px की तरह मान लेते हैं तो क्या करते हैं। पार्सिंग का परिणाम केवल 35 में होगा
मुहम्मद उमेर

5
@MuhammadUmer: आप 'parseFloat' ( w3schools.com/jsref/jsref_parsefloat.asp ) का उपयोग कर सकते हैं
डॉन

38

उपयोग

var size = parseInt('245px', 10);

जहां 10 मूलांक परिभाषित parseIntहै, एक दशमलव मान पर पार्स कर रहा है

parseInt का उपयोग करें, लेकिन एक मूलांक के बिना parseInt का उपयोग न करें

ParseInt () फ़ंक्शन एक स्ट्रिंग को पार्स करता है और एक पूर्णांक देता है।

हस्ताक्षर है parseInt(string, radix)

दूसरा तर्क आधार को दस नंबरिंग प्रणाली का उपयोग करने के लिए बाध्य करता है।

  • ParseInt () के लिए डिफ़ॉल्ट इनपुट प्रकार दशमलव (बेस 10) है।
  • यदि संख्या "0" में शुरू होती है, तो इसे अष्टक (आधार 8) माना जाता है।
  • यदि यह "0x" में शुरू होता है, तो इसे हेक्साडेसिमल माना जाता है

क्यों? अगर $ (यह) .attr ('संख्या') "08" होगा तो बिना मूलांक वाला parsInt 0 हो जाएगा


19

अंत में "px" के बिना एक पिक्सेल मान परिवर्तित करने के लिए। parseFloat का उपयोग करें।

parseFloat('245px'); // returns 245      

नोट: यदि आप parseInt का उपयोग करते हैं, तो मान पूर्णांक होने पर मान सही होगा। यदि मान 245.50px की तरह एक दशमलव एक है, तो मूल्य को 245 में गोल किया जाएगा।


जैसा कि एक सटीक बनाने के लिए मेरे संपादन को अस्वीकार कर दिया गया था, मैं इसे टिप्पणी में डालने जा रहा हूं, parseFloat()जैसे कि मूलांक नहीं लेता है parseInt()(देखें डेवलपर. mozilla.org/en-US/docs/Web/JavaScript/Reference/… & stackoverflow.com/ प्रश्न / 8555649 /… )
वैक्स

16

यह वही है जो आप पूछते हैं: एक स्ट्रिंग के अंतिम दो वर्णों को हटा दें:

s.substr(0, s.length-2);

5

हैरानी की बात है, प्रतिस्थापन विधि s.substr(0, s.length-2);वास्तव में हटाने के लिए काफी तेज़ है px(हाँ यह उतना साफ नहीं है, और अगर कोई जगह है तो वह बनी रहेगी - "250px" -> "250"बनाम"250 px" -> "250 " )।

यदि आप रिक्त स्थान (जो शायद आपको चाहिए) का उपयोग करना चाहते हैं तो .trim()फ़ंक्शन का उपयोग करके वास्तव में substrपरीक्षण को धीमा कर देगा कि एparseInt विधि वास्तव में बेहतर हो जाती है।

उपयोग करने का एक अतिरिक्त लाभ parseInt(s, 10) का यह है कि आपको एक प्रकार का रूपांतरण भी मिलता है और इसे तुरंत गणितीय कार्यों पर लागू करना शुरू कर सकते हैं।

तो अंत में, यह वास्तव में इस बात पर निर्भर करता है कि आप परिणाम के साथ क्या कर रहे हैं।

  • यदि यह केवल प्रदर्शित होता है, तो बिनाsubstr विधि का उपयोग किए ट्रिम के करना शायद आपका सबसे अच्छा दांव होगा।
  • यदि आप केवल यह देखने की कोशिश कर रहे हैं कि क्या px के बिना मान दूसरे मान के समान है 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, '')फंक्शन की कोशिश की , दोनों ही धीमे पाए गए।

अतिरिक्त परीक्षण मामलों को जोड़ने के लिए स्वतंत्र महसूस करें।


1

हालाँकि parseInt () एक अच्छा विकल्प है लेकिन फिर भी कई अन्य समाधान करना अच्छा है

var pixels = '245px';
Number(pixels.replace('px', ''));


0

मैं पसंद करता हूं: "245px".replace(/px/,'')*1

चूंकि यह इनपुट के आसपास नहीं है।

इसके अलावा, *1यह int के लिए कास्टिंग के लिए है।


0

substr()है अब एक विरासत सुविधा ; substring()इसके बजाय उपयोग करें : (सिंटैक्स इस मामले में समान है )

str.substring(0, str.length-2);

या, उपयोग करें slice():

str.slice(0, -2);

slice()बहुत साफ दिखता है, IMO। नकारात्मक मूल्य अंत से वापस आ जाते हैं।


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