जवाबों:
इस?
str = str.replace(/\s/g, '');
उदाहरण
var str = '/var/www/site/Brand new document.docx';
document.write( str.replace(/\s/g, '') );
अपडेट: इस सवाल के आधार पर , यह:
str = str.replace(/\s+/g, '');
एक बेहतर उपाय है। यह एक ही परिणाम पैदा करता है, लेकिन यह तेजी से करता है।
रेगेक्स
\s
"व्हाट्सएप" के लिए रेगेक्स है, और g
"ग्लोबल" ध्वज है, जिसका अर्थ है सभी से मेल खाता है\s
(व्हाट्सएप) से ।
के लिए एक महान स्पष्टीकरण यहाँ+
पाया जा सकता है ।
एक साइड नोट के रूप में, आप एकल उद्धरणों के बीच की सामग्री को अपनी इच्छानुसार बदल सकते हैं, इसलिए आप व्हाट्सएप को किसी अन्य स्ट्रिंग के साथ बदल सकते हैं।
.replace(/\s+/g, '')
अक्सर देखता हूं । क्या मेरे और मेरे उत्तर में कोई अंतर है?
.replace(' ','')
काम करेगा। बहुत सराहना की!
+
में केवल 60 वोट हैं अगर कोई भी उसे क्रेडिट करना चाहता है / उसे बहुत अधिक stackoverflow.com/a/5964427/4258817
.replace('/\s+/g', '')
क्योंकि यह उस शाब्दिक स्ट्रिंग को खोजने की कोशिश करेगा। इसने मुझे पहले फंसा दिया ...
var a = b = " /var/www/site/Brand new document.docx ";
console.log( a.split(' ').join('') );
console.log( b.replace( /\s/g, '') );
ऐसा करने के दो तरीके!
SHORTEST और सबसे तेज :str.replace(/ /g, '');
बेंचमार्क:
यहां मेरे परिणाम - (2018.07.13) MacOs हाई सिएरा 10.13.3 क्रोम पर 67.0.3396 (64-बिट), सफारी 11.0.3 (13604.5.6), फ़ायरफ़ॉक्स 59.0.2 (64-बिट):
ओपी प्रश्न से उदाहरण के समान लघु स्ट्रिंग
सभी ब्राउज़रों पर सबसे तेज़ समाधान है / /g
(regexp1a) - क्रोम 17.7M (ऑपरेशन / सेकंड), सफारी 10.1M, फ़ायरफ़ॉक्स 8.8M। सभी ब्राउज़रों के लिए सबसे धीमा split-join
समाधान था । प्रसंस्करण को धीमा करने
\s
या फिर से जोड़ने +
या बदलने के लिए बदलें i
।
स्ट्रिंग के बारे में ~ 3 सैन्य चरित्र परिणाम हैं:
आप इसे अपनी मशीन पर चला सकते हैं: https://jsperf.com/remove-string-spaces/1
@Rsplak उत्तर के बाद: वास्तव में, विभाजन / जुड़ने का तरीका regexp का उपयोग करने की तुलना में तेज़ है। प्रदर्शन परीक्षण का मामला देखें
इसलिए
var result = text.split(' ').join('')
से अधिक तेजी से चल रही है
var result = text.replace(/\s+/g, '')
छोटे ग्रंथों पर यह प्रासंगिक नहीं है, लेकिन ऐसे मामलों के लिए जब समय महत्वपूर्ण है, उदाहरण के लिए पाठ विश्लेषकों में, विशेष रूप से उपयोगकर्ताओं के साथ बातचीत करते समय, यह महत्वपूर्ण है।
दूसरी ओर, \s+
विभिन्न प्रकार के अंतरिक्ष वर्णों को संभालता है। के साथ \n
और \t
, यह \u00a0
चरित्र से भी मेल खाता है, और यही वह है जो
पाठ का उपयोग करते समय प्राप्त होता है textDomNode.nodeValue
।
इसलिए मुझे लगता है कि यहाँ निष्कर्ष इस प्रकार बनाया जा सकता है: यदि आपको केवल रिक्त स्थान बदलने की आवश्यकता है ' '
, विभाजन / शामिल होने का उपयोग करें। यदि प्रतीक वर्ग के विभिन्न प्रतीक हो सकते हैं - उपयोगreplace(/\s+/g, '')
way faster
। परीक्षण चलाया और यह केवल 2.19% तेज है, मेरे फ़ायरफ़ॉक्स 61 पर।
var input = '/var/www/site/Brand new document.docx';
//remove space
input = input.replace(/\s/g, '');
//make string lower
input = input.toLowerCase();
alert(input);
var output = '/var/www/site/Brand new document.docx'.replace(/ /g, "");
or
var output = '/var/www/site/Brand new document.docx'.replace(/ /gi,"");
नोट: यद्यपि आप रिक्त स्थान को हटाने के लिए 'g' या 'gi' का उपयोग करते हैं, दोनों समान व्यवहार करते हैं।
यदि हम प्रतिस्थापित फ़ंक्शन में 'g' का उपयोग करते हैं, तो यह सटीक मिलान के लिए जाँच करेगा। लेकिन अगर हम 'gi' का उपयोग करते हैं, तो यह केस सेंसिटिविटी को नजरअंदाज कर देता है।
संदर्भ के लिए यहां क्लिक करें ।
रेगेक्स + रिप्लेसमेंट ()
यद्यपि रेगेक्स धीमा हो सकता है, कई उपयोग के मामलों में डेवलपर केवल कुछ तारों में हेरफेर कर रहा है, इसलिए गति पर विचार करना अप्रासंगिक है। भले ही / \ / s / से तेज़ है, '' s 'बताता है कि किसी अन्य डेवलपर के लिए क्या चल रहा है और अधिक स्पष्ट रूप से।
let string = '/var/www/site/Brand new document.docx';
let path = string.replace(/\s/g, '');
// path => '/var/www/site/Brandnewdocument.docx'
विभाजन () + शामिल हों ()
स्प्लिट + जॉइन का उपयोग करके स्ट्रिंग के आगे जंजीर हेरफेर के लिए अनुमति देता है।
let string = '/var/www/site/Brand new document.docx';
let path => string.split('').map(char => /(\s|\.)/.test(char) ? '/' : char).join('');
// "/var/www/site/Brand/new/document/docx";
" ahm ed ".split('').filter(e => e.trim().length).join('')