2011-02-14 30 views
49

स्ट्रिंग से निकालने संख्यास्ट्रिंग से संख्याओं को हटा रहा है?

questionText = "1 ding ?" 

मैं इस नंबर और प्रश्न संख्या बदलना चाहते हैं, संख्या किसी भी संख्या हो सकता है, मैं निम्नलिखित की कोशिश की कोड काम नहीं कर रहा thats

questionText.replace(/[0-9]/g, ''); 
+2

वास्तव में क्या काम नहीं कर रहा है? क्योंकि यह संख्या को हटा रहा है ... –

+0

क्या आपको दशमलव बिंदुओं को हटाने की भी आवश्यकता होगी? – glowworms

+1

@ बेर्बी यह प्रश्न डुप्लिकेट नहीं है।उद्धृत एक "प्रतिस्थापन विधि काम नहीं करता" में उचित शीर्षक नहीं है ताकि उपयोगकर्ता "स्ट्रिंग से संख्याओं को निकालने" के लिए टाइप और खोज कर सके। खराब नियंत्रण –

उत्तर

99

बहुत करीब है, की कोशिश:

questionText = questionText.replace(/[0-9]/g, ''); 

replace मौजूदा स्ट्रिंग पर काम नहीं करता है, यह एक नया लौटाता है। यदि आप इसका उपयोग करना चाहते हैं, तो आपको इसे रखना होगा! एक ही बार में अंक के पूरे ब्लॉक को दूर करने के

var withNoDigits = questionText.replace(/[0-9]/g, ''); 

एक आखिरी चाल है, लेकिन यह एक बहुत दूर जा सकते हैं:
इसी तरह, आप एक नया वेरिएबल का उपयोग कर सकते

questionText = questionText.replace(/\d+/g, ''); 
+0

के रूप में, अच्छी तरह से डॉन कोबी। ऐसा लगता है कि आप मुझे एक ही जवाब में हराया। मुझे जल्दी टाइप करना सीखना होगा। – Spudley

+0

क्या मैं प्रतिस्थापित कर सकता हूं? और * एक स्ट्रिंग से मेथोड को str.replace ("?, *", "") की तरह बदलें; – kiran

+0

जो काम नहीं कर रहा है, मैं दोनों को प्रतिस्थापित करना चाहता हूं? और * मेरी स्ट्रिंग में स्पेस के साथ – kiran

8

आप उल्लेखनीय निकट पहुंच गए हैं ।

यहाँ कोड आप प्रश्न में लिखा है:

questionText.replace(/[0-9]/g, ''); 

कोड आपके द्वारा लिखी गई वास्तव में questionText चर पर दिखता है, और उत्पादन जो मूल स्ट्रिंग है उत्पादन, लेकिन खाली साथ प्रतिस्थापित अंकों के साथ स्ट्रिंग।

हालांकि, यह स्वचालित रूप से मूल चर पर वापस असाइन नहीं करता है। आप यह क्या करने के लिए आवंटित करने के लिए निर्दिष्ट करने की आवश्यकता:

questionText = questionText.replace(/[0-9]/g, ''); 
9

स्ट्रिंग immutable कर रहे हैं, यही वजह है कि questionText.replace(/[0-9]/g, ''); अपने आप पर काम करता है, लेकिन यह questionText-स्ट्रिंग नहीं बदलता है। आपको प्रतिस्थापन के परिणाम को किसी अन्य स्ट्रिंग-वेरिएबल या प्रश्न टेक्स्ट को फिर से असाइन करना होगा।

questionText = ("1 ding ?").replace(/\d+/g,''); 

और आप प्रमुख (और अनुगामी) अंतरिक्ष (रों) ट्रिम करने के लिए जब आप इसे पर हैं चाहते हैं:

var cleanedQuestionText = questionText.replace(/[0-9]/g, ''); 

या 1 बार में (\d+ का उपयोग कर, कोबी के जवाब देखें):

questionText = ("1 ding ?").replace(/\d+|^\s+|\s+$/g,''); 
+0

सभी regexes पर '/ g' मत भूलना - जावास्क्रिप्ट उस तरह से परेशान है ':)' – Kobi

1

बस जोड़ना चाहते हैं क्योंकि यह किसी के लिए ब्याज हो सकता है, ताकि आप समस्या को अन्य तरीकों से भी सोच सकें। मुझे यकीन नहीं है कि यह ब्याज का है, लेकिन मुझे यह प्रासंगिक लगता है। 1:

क्या मैं दूसरी तरह से मतलब कहने के लिए "

वर strippedText = (कुछ भी है कि मैं क्या देख रहा हूँ नहीं कर रहे हैं, यानी पट्टी अगर आप केवल 'डिंग' चाहते हैं आप कह सकते हैं कि" डिंग? ")। प्रतिस्थापित करें (/ [^ ए-जेए-जेड]/जी, '');

जिसका मूल रूप से अर्थ है" कुछ भी जो नोग ए, बी, सी, डी है .... जेड (कोई भी पत्र)।

संबंधित मुद्दे