2009-07-23 12 views
49

क्लाइंट साइड में उपयोगकर्ता इनपुट टेक्स्ट सभी व्हाइट स्पेस कैरेक्टर (स्पेस, टैब, एंटर इत्यादि) कैसे जांचें?क्लाइंट साइड में कोई टेक्स्ट सभी सफेद स्पेस वर्णों को कैसे जांचें?

अग्रिम धन्यवाद! * को + एक सकारात्मक मैच के रूप में रिक्त स्ट्रिंग '' शामिल करने के लिए

+5

आप, regex नहीं जानते, तो अपने सिर को तैयार विस्फोट के लिए। –

+2

@GabRoyer, jQuery के साथ नहीं, यह नहीं होगा! नीचे MacAnthony का जवाब देखें। –

उत्तर

31

/^\s+$/.test(userText)

बदलें।

संपादित

अधिक बार नहीं है, हालांकि आप उपयोगकर्ता के दर्ज किया गया टेक्स्ट से खाली स्थान के ट्रिम करने के लिए और अगर यह गैर खाली है बस का परीक्षण की जरूरत है:

userText = userText.replace(/^\s+/, '').replace(/\s+$/, ''); 
if (userText === '') { 
    // text was all whitespace 
} else { 
    // text has real content, now free of leading/trailing whitespace 
} 
+0

एफडब्ल्यूआईडब्लू/^ \ एस \ एस *//^\ s +/ – James

+0

से तेज़ है यदि मैं गलत हूं, तो मुझे सही करें, लेकिन यह दोहरी जगह के समान नहीं है? x.replace (/^\s*(.*?)\s*$/, '$ 1'); – coderjoe

7

इस तरह ...

function isEmpty(str) { 
    return str.replace(/^\s+|\s+$/g, '').length == 0; 
} 
5

यदि आप देखना चाहते हैं कि फ़ाइल में सभी सफेद स्थान हैं या खाली है, तो मैं उलटा परीक्षण और परिणाम को बदलने की सलाह दूंगा। इस तरह आपको खाली स्ट्रिंग के आसपास विशेष मामलों के बारे में चिंता करने की आवश्यकता नहीं है।

function isWhitespaceOrEmpty(text) { 
    return !/[^\s]/.test(text); 
} 

आप खाली स्ट्रिंग नहीं करना चाहते, तो आप इसे थोड़ा संशोधित कर सकते हैं:

function isWhitespaceNotEmpty(text) { 
    return text.length > 0 && !/[^\s]/.test(text); 
} 
+0

जब मैं रेगेक्स पढ़ता हूं तो मैंने पढ़ा: "व्हाइटस्पेस से शुरू होने वाली स्ट्रिंग जांचें", लेकिन जब आप "abc" टाइप करते हैं तो यह कैसे काम करता है? –

+0

आप नियमित अभिव्यक्ति को गलत तरीके से पढ़ रहे हैं। [^ \ s] का अर्थ है कोई भी चरित्र जो कि सफेद जगह नहीं है। – coderjoe

81

यह सवाल jQuery के साथ टैग है

सभी खाली स्थान के कोई गैर-सफ़ेद इतनी के रूप में एक ही है । jQuery में, आप चला सकते हैं निम्नलिखित:

if ($.trim($('#myInput').val()) == '') 
    alert('input is blank'); 
18

यह भी काम करेगा:

var text = " "; 
text.trim().length == 0; //true 
+0

यह सभी ब्राउज़रों में काम नहीं करता है। मैक एंथनी की प्रतिक्रिया देखें। – shakerlxxv

+0

दिलचस्प यह जानना होगा कि यह तेज़ है या यदि रेगेक्स समाधान तेज है। – Devid

+0

यह सुनिश्चित नहीं है कि यह कौन सा ब्राउज़र काम नहीं करता है (मैं उत्सुक होगा) लेकिन मैंने अभी क्रोम (62.0.3202.9 4), फ़ायरफ़ॉक्स (5 9 .0), और सफारी (11.0.1) में परीक्षण किया है और यह उन में काम करता है। –

3

जोश का जवाब बहुत ही इस के करीब है, लेकिन w3schools के अनुसार (मई 2014 में) यह इस प्रकार है:

function isEmpty(str) { 
    return str.replace(/^\s+|\s+$/gm,'').length == 0; 
} 
0

कोई चीज जो मेरे लिए काम किया है:

$("#example_form").validate({ 
    rules: { 
     example_field: { 
      required: { 
       depends: function() { 
        $(this).val($.trim($(this).val())); 
        return true; 
       } 
      } 
     }, 

    }, 
    messages: { example_field: {required: "Custom Validation Message for example_field"}, } 
}); 
2

खाली स्थान के लिए जावास्क्रिप्ट द्वारा और तत्वों के बीच उत्पन्न ढूँढें:

var trimmed = $.trim($('p').text()); 

if (trimmed === ''){ 
    //function... 
} 
संबंधित मुद्दे