जावास्क्रिप्ट में एक स्ट्रिंग के अंदर व्हाट्सएप निकालें


102

मैंने इस प्रश्न को जावास्क्रिप्ट ट्रिम के बारे में पढ़ा है , एक रेग्जेस उत्तर के साथ।

फिर मुझे उम्मीद है कि हैलो और वर्ल्ड के बीच के आंतरिक स्थान को हटा दिया जाएगा ।

function myFunction() {
    alert("Hello World ".trim());
}

संपादित

मुझे उम्मीद है कि क्यों !?

बकवास! स्पष्ट रूप से ट्रिम आंतरिक रिक्त स्थान को नहीं हटाता है!, केवल अग्रणी और अनुगामी हैं, यह है कि ट्रिम कैसे काम करता है, तो यह एक बहुत ही गलत सवाल था, मेरी माफी।


10
ट्रिम हटा शुरुआत और एक स्ट्रिंग के अंत से खाली स्थान के
Manse

3
ट्रिम एक स्ट्रिंग से पहले और बाद में व्हाट्सएप को हटा देता है । Hello Worldपहले से ही "छंटनी" है।
रॉकेट हज़मत

@ नमस्कार "हैलो वर्ल्ड" के बजाय "हैलोवर्ल्ड" दिखाने के लिए
हर्नान ईच

4
@void: यह "ट्रिमिंग" नहीं है, यह एक अलग समस्या है।
रॉकेट हज़मत

जवाबों:


238

अंतरिक्ष-चरित्र हटाने के उपयोग के लिए

"hello world".replace(/\s/g, "");

सभी सफेद अंतरिक्ष के लिए नीचे टिप्पणी में रॉकेट द्वारा सुझाव का उपयोग करें!


139
.replace(/ /g, '')यदि एक बार से अधिक जगह है तो आप उपयोग करना चाह सकते हैं ।
रॉकेट हज़मत

@ लॉकेट, यह बिल्कुल सच है, अभी तक अद्यतन जवाब havent! धन्यवाद! :)
हेनरिक एंडरसन

47
@ जुहाना: यदि आप अन्य व्हाट्सएप को भी हटाना चाहते हैं तो करें .replace(/\s/g, ''):।
रॉकेट हज़मत

12
@RocketHazmat हाँ! सही जबाव! हालांकि यह थोड़ा अधिक कुशल हो सकता है: str.replace (/ \ s + / g, '')
jackocnr

3
@PitchiahNatarajan \sरिक्त स्थान, टैब और नई लाइनों से मेल खाएगा।
रॉकेट हज़मत

8

शायद इसलिए क्योंकि आप स्वीकृत उत्तर में समाधान को लागू करना भूल गए । यह वह कोड है जो trim()काम करता है।

अपडेट करें

यह उत्तर केवल पुराने ब्राउज़रों पर लागू होता है। नए ब्राउज़र स्पष्ट trim()रूप से मूल रूप से समर्थन करते हैं ।


2
जरूरी नहीं कि कुछ ब्राउजर्स ने इसे बनाया हो ।:-P
रॉकेट हज़मत

1
अब सबसे आधुनिक ब्राउजर
Manse

1

आप स्ट्रिंग्स रिप्लेस विधि का उपयोग नियमित अभिव्यक्ति के साथ कर सकते हैं ।

"Hello World ".replace(/ /g, "");

प्रतिस्थापन () विधि एक प्रतिस्थापन द्वारा प्रतिस्थापित पैटर्न के कुछ या सभी मैचों के साथ एक नया स्ट्रिंग लौटाती है। पैटर्न एक स्ट्रिंग या एक RegExp हो सकता है

रेगुलर एक्सप्रेशन

  • / / - नियमित अभिव्यक्ति मिलान स्थान

  • जी - वैश्विक ध्वज; पहले मैच के बाद रुकने के बजाय सभी मैच खोजें


1

आप उपयोग कर सकते हैं

"Hello World ".replace(/\s+/g, '');

trim()केवल स्ट्रिंग पर अनुगामी रिक्त स्थान को निकालता है (श्रृंखला पर पहला और अंतिम)। इस मामले में यह regExp तेज है क्योंकि आप एक ही समय में एक या अधिक रिक्त स्थान निकाल सकते हैं।

यदि आप प्रतिस्थापन रिक्त स्ट्रिंग को '$' में बदलते हैं, तो अंतर बहुत स्पष्ट हो जाता है:

var string= '  Q  W E   R TY ';
console.log(string.replace(/\s/g, '$'));  // $$Q$$W$E$$$R$TY$
console.log(string.replace(/\s+/g, '#')); // $Q$W$E$R$TY$

प्रदर्शन तुलना - /\s+/gतेज है। यहां देखें: http://jsperf.com/s-vs-s


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

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