जावास्क्रिप्ट नियमित अभिव्यक्ति रिक्त स्थान निकालें


89

तो मैं एक स्ट्रिंग से रिक्त स्थान को हटाने के लिए JQuery के लिए एक छोटा सा प्लगइन लिख रहा हूँ। यहाँ देखें

(function($) {
    $.stripSpaces = function(str) {
        var reg = new RegExp("[ ]+","g");
        return str.replace(reg,"");
    }
})(jQuery);

मेरी नियमित अभिव्यक्ति वर्तमान [ ]+में सभी स्थानों को एकत्रित करने के लिए है। यह काम करता है .. हालांकि यह मेरे मुंह में एक अच्छा स्वाद नहीं छोड़ता है .. मैंने भी कोशिश की [\s]+और [\W]+न ही काम किया।

केवल रिक्त स्थान की खोज का एक बेहतर (अधिक संक्षिप्त) तरीका होना चाहिए।

जवाबों:


229

मैं आपको शाब्दिक अंकन और \sचरित्र वर्ग का उपयोग करने की सलाह दूंगा :

//..
return str.replace(/\s/g, '');
//..

वर्ण वर्ग \sऔर बस का उपयोग करने के बीच एक अंतर है ' ', यह बहुत अधिक श्वेत-अंतरिक्ष वर्णों से मेल खाएगा, उदाहरण के लिए '\t\r\n'.., ' 'केवल ASCII 32 रिक्त स्थान को बदलेगा।

RegExpजब आप करना चाहते हैं निर्माता उपयोगी है का निर्माण एक गतिशील पैटर्न, इस मामले में आप इसे ज़रूरत नहीं है में।

इसके अलावा, जैसा कि आपने कहा, कंस्ट्रक्टर के "[\s]+"साथ काम नहीं किया , ऐसा RegExpइसलिए है क्योंकि आप एक स्ट्रिंग पास कर रहे हैं, और आपको बैक-स्लैश से "डबल एस्केप" होना चाहिए, अन्यथा उन्हें स्ट्रिंग के अंदर चरित्र के रूप में व्याख्या की जाएगी (जैसे: "\s" === "s"(अज्ञात) पलायन))।



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

मेरे लिये कार्य करता है।

jQuery.trim IE के लिए निम्नलिखित हैक है, हालांकि मुझे यकीन नहीं है कि यह किस संस्करण को प्रभावित करता है:

// Check if a string has a non-whitespace character in it
rnotwhite = /\S/

// IE doesn't match non-breaking spaces with \s
if ( rnotwhite.test( "\xA0" ) ) {
    trimLeft = /^[\s\xA0]+/;
    trimRight = /[\s\xA0]+$/;
}

1

स्ट्रिंग में सभी रिक्त स्थान निकालें

// Remove only spaces
`
Text with spaces 1 1     1     1 
and some
breaklines

`.replace(/ /g,'');
"
Textwithspaces1111
andsome
breaklines

"

// Remove spaces and breaklines
`
Text with spaces 1 1     1     1
and some
breaklines

`.replace(/\s/g,'');
"Textwithspaces1111andsomebreaklines"

1

उत्पादन और लाइन ब्रेक में काम करता है

इसका उपयोग कई ऐप्स में उपयोगकर्ता द्वारा उत्पन्न सामग्री को अतिरिक्त रिक्ति / रिटर्न आदि को हटाने के लिए किया जाता है, लेकिन रिक्त स्थान के अर्थ को बनाए रखता है।

text.replace(/[\n\r\s\t]+/g, ' ')

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