पाठ से सभी सफेद रिक्त स्थान निकालें


587
$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");

यह मेरे कोड से एक स्निपेट है। मैं एक और आईडी की टेक्स्ट प्रॉपर्टी पाने के बाद एक आईडी में एक क्लास जोड़ना चाहता हूं। इसके साथ समस्या यह है कि मुझे जिस पाठ की आवश्यकता है, उसे पकड़े हुए आईडी में अक्षरों के बीच अंतराल होता है।

मैं चाहूंगा कि व्हाइट स्पेस हटा दिया जाए। मैंने कोशिश की है TRIM()और REPLACE()यह केवल आंशिक रूप से काम करता है। REPLACE()केवल 1 अंतरिक्ष निकाल देता है।

जवाबों:


1347

आपको रेगेक्स दोहराने के लिए रिप्लेसमेंट () बताना होगा:

.replace(/ /g,'')

जी चरित्र पूरी स्ट्रिंग के माध्यम से खोज को दोहराने के लिए मायने रखता है। इस बारे में पढ़ें, और जावास्क्रिप्ट में उपलब्ध अन्य RegEx संशोधक यहां

यदि आप सभी व्हाट्सएप का मिलान करना चाहते हैं, न कि केवल शाब्दिक स्थान वर्ण का, तो \sइसके बजाय उपयोग करें :

.replace(/\s/g,'')

30
Coffeescript कुछ भगवान भयानक कारण के लिए उस regex के बारे में शिकायत करेंगे। इसके बजाय मुझे आगे जाना था और इसका उपयोग करना था .replace(/\s+/g, '')जो मेरे द्वारा पूरी तरह से ठीक है।
डैन ब्रैडबरी

7
आप माणिक के string.strip विधि है, जो रिटर्न प्रमुख और व्हाइटस्पेस निकाल पूर्ण विराम वाले स्ट्रिंग की एक प्रतिलिपि रिटर्न की तरह कुछ को लागू करने के लिए चाहते हैं, यह काम करना चाहिए: साधन खाली स्थान के स्ट्रिंग की शुरुआत के बाद साधन के अंत में खाली स्थान के स्ट्रिंग, समूह में / या के लिए है, और संशोधक ऊपर टिप्पणियों में समझाया गया है। आपको प्रत्येक स्थान के बाद क्वांटिफायर की भी आवश्यकता होती है क्योंकि आप एक या एक से अधिक स्थानों को सफेद स्थानों पर कब्जा करना चाहते हैं। x = " Many spaces before and after " y = x.replace(/(^\s+|\s+$)/g, "")^\s\s$|g+\s
गैरेट सिम्पसन

298
.replace(/\s+/, "") 

पहले व्हाट्सएप की जगह लेगा , इसमें स्पेस, टैब और नई लाइनें शामिल हैं।

स्ट्रिंग में सभी व्हाट्सएप को बदलने के लिए आपको वैश्विक मोड का उपयोग करने की आवश्यकता है

.replace(/\s/g, "")

11
पहले वाला सभी श्वेत रिक्त स्थान नहीं निकालता है (यह केवल अंतरिक्ष के पहले समूह / नई पंक्ति / टैब को हटाता है), दूसरा ठीक है। डेमो: regex101.com/r/wX8rF2/3

4
.replace (/ \ s + / g, '')
mynameistechno

@mynameistechno +पहले से ही g(वैश्विक) संशोधक
d4nyll

पहली पंक्ति ने काम नहीं किया क्योंकि यह पाठ से अनुगामी रिक्त स्थान को नहीं
हटाता है

@ d4nyll यह इसे और अधिक कुशल बना सकता है।
सोलोमन उको

5

String.prototype.replaceरेगेक्स के साथ उपयोग करना , जैसा कि अन्य उत्तरों में बताया गया है, निश्चित रूप से सबसे अच्छा समाधान है।

लेकिन, सिर्फ मनोरंजन के लिए, आप भी एक पाठ से सभी व्हाइटस्पेस का उपयोग करके निकाल सकते हैं String.prototype.splitऔर String.prototype.join:

const text = ' a b    c d e   f g   ';
const newText = text.split(/\s/).join('');

console.log(newText); // prints abcdefg

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