स्ट्रिंग का हिस्सा कैसे निकालना है?


82

मान लीजिए कि मेरे पास है test_23और मैं हटाना चाहता हूं test_

मैं उसको कैसे करू?

पहले उपसर्ग _बदल सकता है।


जवाबों:


147

ऐसा करने का मेरा पसंदीदा तरीका "विभाजन और पॉपिंग" है:

var str = "test_23";
alert(str.split("_").pop());
// -> 23

var str2 = "adifferenttest_153";
alert(str2.split("_").pop());
// -> 153

विभाजन () एक स्ट्रिंग को एक अलग विभाजक स्ट्रिंग का उपयोग करके स्ट्रिंग की एक सरणी में विभाजित करता है।
पॉप () एक सरणी से अंतिम तत्व निकालता है और उस तत्व को वापस करता है।


24
मुझमें C प्रोग्रामर इस सरल विभाजन / पॉप ऑपरेशन पर बनाई गई और नष्ट की गई वस्तुओं की संख्या पर संकट डालता है :) संभवतः: एक सरणी, 2 स्ट्रिंग, एक और सरणी, एक और स्ट्रिंग।
गुई

11
@xgbi: हाँ, जावास्क्रिप्ट और सी डेवलपर्स के पास अलग-अलग दर्शन हैं, हालाँकि ;-)
एंडी ई

3
आप उपयोग करने की संभावना अपने जवाब के लिए जोड़ सकते हैं alert(str.split("_")[1]);के बाद से .splitदो तत्वों के साथ एक सरणी बनाता है, [0]पहले किया जा रहा है "_"और [1]बाद। यह वास्तव में मैं क्या देख रहा था, लेकिन आपके उत्तर ने मुझे वहां पहुंचने में मदद की ^ ^
फर्नांडो सिल्वा

1
@FernandoSilva फिर, अगर दो "_" या अधिक थे, तो हम कहेंगे कि हमें 3 आइटम एरे मिलेंगे और तीसरे को भी उपयोग / हटाने में सक्षम होंगे, है ना? BTW, +1। ठीक वही जो मेरे द्वारा खोजा जा रहा था।
लाइट सब्रिक्स

@ TheLightSabrix इसे काम करते हुए देख लेते हैं, पाठ में इसे समझाने की कोशिश की तुलना में यह बहुत आसान है। jsbin.com/keleguzacu/edit?js,console
फर्नांडो सिल्वा

42

मान लें कि आपकी स्ट्रिंग हमेशा से शुरू होती है 'test_':

var str = 'test_23';
alert(str.substring('test_'.length));

5
क्या होगा अगर यह परीक्षण से शुरू नहीं होता है?
NullVoxPopuli

बदलें का उपयोग करें, लेकिन अगर वहाँ कई घटनाओं रहे हैं काम नहीं करता है। str.replace ("test_", ""); एक नया स्ट्रिंग लौटाएगा जहां "test_" की सभी घटनाएं हटा दी जाती हैं, इसलिए यदि केवल एक घटना की गारंटी है, तो यह ठीक होना चाहिए। हालाँकि, यदि कई हैं, तो मैं str = str.substring (0, str.indexOf ("test_)" + str.substring (str.indexOf ("test_") + 5, str.length का उपयोग करता हूँ; मुझे यह पता है; एक पुरानी पोस्ट है, लेकिन अगर कोई इसके पार आता है, तो कम से कम एक व्यक्ति को कहीं बाहर ले जाने में मदद कर सकता है।
जॉर्ज जेवियर

23

अगर आप स्ट्रिंग का हिस्सा हटाना चाहते हैं

let str = "test_23";
str.replace("test_", "");
// 23

यदि आप स्ट्रिंग का हिस्सा बदलना चाहते हैं

let str = "test_23";
str.replace("test_", "student-");
// student-23


9
string = "test_1234";
alert(string.substring(string.indexOf('_')+1));

यह भी काम करता है अगर स्ट्रिंग कोई अंडरस्कोर नहीं है। इसे http://jsbin.com/ पर आज़माएं


4
इसमें ओवरहेड कम है, लेकिन एंडी ई के जवाब की तुलना में अधिक कोड है। दोनों काम करते हैं, लेकिन मैं इस पद्धति को पसंद करता हूं।
19

0
string = "removeTHISplease";
result = string.replace('THIS','');

मुझे लगता है कि रिप्लेस उसी तरह करते हैं जैसे कुछ फंक्शन। मेरे लिए यह काम करता है।


कोड केवल जवाब लगभग हमेशा कैसे और क्यों वे काम के कुछ स्पष्टीकरण के अलावा द्वारा सुधार किया जा सकता है। स्वरूपण महत्वपूर्ण है।
जेसन एलर

कम से कम यह ऑनटॉप की जगह काम करता है।

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