Jquery-out-of-the-box के साथ एक खाली स्ट्रिंग के लिए परीक्षण करने का सबसे अच्छा तरीका क्या है?


229

जेकरी-आउट-ऑफ-द-बॉक्स के साथ खाली स्ट्रिंग के लिए परीक्षण करने का सबसे अच्छा तरीका क्या है, अर्थात प्लगइन्स के बिना? मैंने यह कोशिश की ।

लेकिन यह कम से कम आउट-ऑफ-द-बॉक्स काम नहीं करता था। यह अच्छा होगा कि कुछ बनाया जाए।

मैं दोहराना नहीं चाहूंगा

if (a == null || a=='')

हर जगह अगर कुछ if (isempty(a)) उपलब्ध होगा।



जवाबों:


556
if (!a) {
  // is emtpy
}

तार के लिए सफेद स्थान को अनदेखा करने के लिए:

if (!a.trim()) {
    // is empty or whitespace
}

आप के लिए विरासत का समर्थन (IE8-) की जरूरत है trim(), का उपयोग करें $.trimया एक polyfill


10
@ कॉफ़ी एडिक्ट खाली स्ट्रिंग जावास्क्रिप्ट में मिथ्या है, इसलिए हां, अभिव्यक्ति सही का मूल्यांकन करती है यदि a"" या कोई अन्य गलत मान है (अशक्त, गलत, अपरिभाषित, 0, NaN)।
डेविड हेलसिंग

21
यदि आपको केवल if (!$.trim(a))
व्हाट्सएप के

3
मेरे अनुभव का अधिकांश समय आप इस परीक्षण को चलाना चाहते हैं, आप यह भी चाहते हैं कि यह व्हॉट्सएप के लिए परीक्षण में शामिल हो। चूंकि यह सामान्य मामला है, ओपी को अपने उत्तर में @IlariKajaste
Bane

17
जब आप 0 इनपुट करते हैं तो स्वीकृत उत्तर विफल हो जाएगा, हालांकि यह 1, 2, 3, 4 आदि के लिए काम करेगा
स्टीवन

5
if (!a.trim())थोड़ा खतरनाक नहीं है? क्या होगा अगर aअपरिभाषित या अशक्त है?
टिमो

27

आपके द्वारा दिया गया लिंक आपको बार-बार दोहराने से बचने की कोशिश कर रहे परीक्षण के लिए कुछ अलग करने का प्रयास करता है।

if (a == null || a=='')

परीक्षण यदि स्ट्रिंग एक रिक्त स्ट्रिंग या अशक्त है। यदि आप स्ट्रिंग में पूरी तरह से व्हाट्सएप (या खाली है) परीक्षण से जुड़ा हुआ लेख।

आपके द्वारा वर्णित परीक्षण द्वारा प्रतिस्थापित किया जा सकता है:

if (!a)

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


if(!a)यह एक स्ट्रिंग के लिए असफल नहीं कहेंगे जिसमें 4 रिक्त स्थान हैं? ``
KNU

@KNU हां, लेकिन सवाल एक रिक्त स्ट्रिंग के बारे में पूछता है, और रिक्त स्थान से युक्त एक स्ट्रिंग एक रिक्त स्ट्रिंग नहीं है। देखें कि मैंने क्या पूछा और क्या जुड़ा हुआ कोड के बीच अंतर के बारे में लिखा है
स्पूनमाइजर

यह उत्तर गलत है। यह '0' को एक खाली स्ट्रिंग की तरह मानता है, जो यह नहीं है।
जॉन हेंकेल

@ जॉनहोनेल: यह 0एक खाली स्ट्रिंग की तरह व्यवहार करेगा , लेकिन नहीं "0"। मुझे लगता है कि तुम क्या मतलब है? यह बोधगम्य है कि यह एक ऐसी स्थिति में उपयोग किया जा रहा है, जहां आप जानते हैं कि aया तो एक स्ट्रिंग है, या अशक्त है, लेकिन हाँ। के बारे में पता करने के लिए कुछ।
स्पूनमाइज़र

25

डेविड के जवाब के आधार पर, मैं व्यक्तिगत रूप से पहले दिए गए ऑब्जेक्ट की जांच करना पसंद करता हूं अगर यह एक स्ट्रिंग है। अन्यथा .trim()मौजूदा वस्तु पर कॉल करना अपवाद नहीं होगा:

function isEmpty(value) {
  return typeof value == 'string' && !value.trim() || typeof value == 'undefined' || value === null;
}

उपयोग:

isEmpty(undefined); // true
isEmpty(null); // true
isEmpty(''); // true
isEmpty('foo'); // false
isEmpty(1); // false
isEmpty(0); // false

मैं textarea से <br /> <p> </ p> से जांचता हूं और कहा गया है कि इसे खाली नहीं करना चाहिए
जांचता

5

जांचें कि क्या डेटा एक रिक्त स्ट्रिंग है (और किसी भी सफेद स्थान को अनदेखा करें) jQuery के साथ:

function isBlank( data ) {
    return ( $.trim(data).length == 0 );
}

5

अशक्त, अपरिभाषित, '', '', {}, [] जैसे सभी 'खाली' के लिए जाँच करने के लिए ।

var isEmpty = function(data) {
    if(typeof(data) === 'object'){
        if(JSON.stringify(data) === '{}' || JSON.stringify(data) === '[]'){
            return true;
        }else if(!data){
            return true;
        }
        return false;
    }else if(typeof(data) === 'string'){
        if(!data.trim()){
            return true;
        }
        return false;
    }else if(typeof(data) === 'undefined'){
        return true;
    }else{
        return false;
    }
}

मामलों और परिणामों का उपयोग करें।

console.log(isEmpty()); // true
console.log(isEmpty(null)); // true
console.log(isEmpty('')); // true
console.log(isEmpty('  ')); // true
console.log(isEmpty(undefined)); // true
console.log(isEmpty({})); // true
console.log(isEmpty([])); // true
console.log(isEmpty(0)); // false
console.log(isEmpty('Hey')); // false

3
if(!my_string){ 
// stuff 
}

तथा

if(my_string !== "")

यदि आप अशक्त स्वीकार करना चाहते हैं, लेकिन खाली अस्वीकार करें

EDIT: woops, अपनी स्थिति भूल गया अगर यह खाली है


2

इसे अपने ब्राउज़र कंसोल में या नोड में भेजें।

var string = ' ';
string ? true : false;
//-> true

string = '';
string ? true : false;
//-> false

इसलिए, परीक्षण के लिए एक सरल शाखा निर्माण पर्याप्त होगा।

if(string) {
    // string is not empty
}

1
"स्ट्रिंग? सच: गलत" या यहां तक ​​कि "स्ट्रिंग" के बजाय "!! स्ट्रिंग" कहना बेहतर है।
ア ッ ク ア

2

चूंकि आप इनपुट नंबर के साथ-साथ निश्चित प्रकार के तार भी लगा सकते हैं, इसलिए उत्तर वास्तव में होना चाहिए:

function isBlank(value) {
  return $.trim(value);
}

क्या ऐसा नहीं होना चाहिए? return !!$.trim(value);
वन्सुुक

-1

इसे इस्तेमाल करे

if(!a || a.length === 0)

ओपी ने विशेष रूप से कहा कि वे इसके लिए एक विकल्प की तलाश कर रहे हैं।
वेन

-4
if((a.trim()=="")||(a=="")||(a==null))
{
    //empty condition
}
else
{
    //working condition
}

यदि है nullतो a.trim()विफल हो जाएगा। यह चीजों की जांच करने का एक बुरा आदेश है। और यदि आप आदेश बदलते हैं, तो आपका उत्तर कुछ भी प्रदान नहीं करता है, जो पहले नहीं सुझाया गया है।
माइक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.