C # String.IsNullOrEmpty जावास्क्रिप्ट समतुल्य


86

मैं String.IsNullOrEmpty(string)जावास्क्रिप्ट में C # के बराबर स्ट्रिंग कॉल करने का प्रयास करना चाहता हूं । मैंने यह मानते हुए ऑनलाइन देखा कि बनाने के लिए एक सरल कॉल था, लेकिन मुझे एक नहीं मिला।

अभी के लिए मैं if(string === "" || string === null)इसे कवर करने के लिए एक बयान का उपयोग कर रहा हूं , लेकिन मैं एक पूर्वनिर्धारित विधि का उपयोग करूंगा (मुझे कुछ उदाहरण मिलते हैं जो किसी कारण से फिसल जाते हैं)

निकटतम जावास्क्रिप्ट (या यदि एक है तो jquery) के पास क्या है जो समान होगा?



3
@ डेनिएला.इस तर्क के समान है, लेकिन मेरे जैसे C # डेवलपर के लिए, यह प्रश्न (इसके शीर्षक के साथ) अधिक पाया जाने की संभावना है
Daniele Armanasco

जवाबों:


211

आप पलट रहे हैं। रिक्त और रिक्त स्ट्रिंग दोनों जावास्क्रिप्ट में गलत मूल्य हैं।

if(!theString) {
 alert("the string is null or empty");
}

Falsey:

  • असत्य
  • शून्य
  • अपरिभाषित
  • खाली स्ट्रिंग ''
  • अंक ०
  • संख्या NaN

16
कमाल यह है कि इतने वोट मिले। यह उत्तर गलत है। आपने स्वयं कहा है कि एक गलत मूल्य 0 होगा। यदि उपयोगकर्ता किसी फ़ील्ड में 0 टाइप करता है तो यह रिक्त स्ट्रिंग नहीं है। एक खाली स्ट्रिंग का शाब्दिक अर्थ है "खाली" स्ट्रिंग।
KingOfHypocrites

3
यदि उपयोगकर्ता 0 टाइप करता है, तो मान "0" होगा स्ट्रिंग नं 0 0. तो यह अभी भी सच होगा मुझे लगता है। कृपया अपना सर्वश्रेष्ठ समाधान, KingOfHypocrites पोस्ट करें?
जोनास टी

2
KingOfHypocrites सही है कि स्ट्रिंग "0" एक गलत परिणाम देगा: "0" == गलत रिटर्न सही है! "0" == गलत रिटर्न सच
Martien de Jong

2
उपयोगी। अपने डेटासेट को जानें। यदि "0" या "झूठे" संभव इनपुट हैं, तो यह समाधान हमेशा काम नहीं कर सकता है।
नेविन

12

यदि, किसी भी कारण से, आप केवल nullऔर केवल परीक्षण करना चाहते हैं empty, तो आप कर सकते हैं:

function isNullOrEmpty( s ) 
{
    return ( s == null || s === "" );
}

नोट: यह टिप्पणियों में उल्लिखित @Raynos के रूप में भी अपरिभाषित होगा।


के लिए अनुकूलित किया जा सकता हैreturn (s == null || s === "")
Raynos

@Raynos - क्यों == के बजाय अशक्त के संबंध में ===? और क्या होगा अगर वस्तु पास नहीं हुई है, अपरिभाषित है? अपरिभाषित <> अशक्त, सही?
कोड मेवरिक

s == nullदोनों को पकड़ता है nullऔर undefinedजब सेnull == undefined
Raynos

@ रेयानोस - ठीक है, मुझे गेटा मिला है, लेकिन इस मामले में कि आप वास्तव में अपरिभाषित या अशक्त जानना चाहते हैं, आपको ===, सही का उपयोग करने की आवश्यकता होगी?
कोड मेवरिक


5

यदि आप जानते हैं कि stringयह संख्यात्मक नहीं है, तो यह काम करेगा:

if (!string) {
  .
  .
  .

स्ट्रिंग "0" गलत है, इसलिए आपको यह जांचने की आवश्यकता नहीं है कि स्ट्रिंग संख्यात्मक है या नहीं।
जोजो

1
हां, स्ट्रिंग "0" stringसत्य है , लेकिन अगर चर वास्तव में एक स्ट्रिंग नहीं बल्कि संख्या शून्य है, तो फिर stringगलत होगा। यह एक मुद्दा नहीं होगा अगर हम जानते हैं कि stringया तो एक वास्तविक स्ट्रिंग या अशक्त है।
1:22

3

आप बस कर सकते हैं

if(!string)
{
  //...
}

यह stringअपरिभाषित, अशक्त और खाली स्ट्रिंग के लिए जाँच करेगा ।


1

स्पष्ट होने के लिए, if(!theString){//...}जहां स्ट्रिंग एक अघोषित चर है, एक अपरिभाषित त्रुटि को फेंक देगा, इसे सही नहीं मिलेगा। दूसरी ओर यदि आपके पास: if(!window.theString){//...}या var theString; if(!theString){//...}यह उम्मीद के मुताबिक काम करेगा। उस स्थिति में जहां एक चर घोषित नहीं किया जा सकता है (जैसा कि एक संपत्ति होने के विपरीत या बस सेट नहीं किया जाता है), आपको उपयोग करने की आवश्यकता है:if(typeof theString === 'undefined'){//...}

मेरी प्राथमिकता एक प्रोटोटाइप फ़ंक्शन बनाना है जो इसे आपके लिए लपेटता है।


1

चूंकि उत्तर को सही के रूप में चिह्नित किया गया है, जिसमें एक छोटी सी त्रुटि है, यहां समाधान के साथ आने का मेरा सबसे अच्छा प्रयास है। मेरे पास दो विकल्प हैं, एक जो स्ट्रिंग लेता है, दूसरा एक स्ट्रिंग या एक संख्या लेता है, क्योंकि मुझे लगता है कि कई लोग जावास्क्रिप्ट में तार और संख्याओं को मिला रहे हैं।

चरण: -यदि वस्तु अशक्त है तो यह अशक्त या रिक्त स्ट्रिंग है। -यदि प्रकार स्ट्रिंग नहीं है (या संख्या) यह स्ट्रिंग मान शून्य या खाली है। नोट: हम वरीयताओं के आधार पर एक अपवाद यहां भी फेंक सकते हैं। -यदि छंटे हुए स्ट्रिंग मान की लंबाई 1 से छोटी है तो यह शून्य या रिक्त है।

var stringIsNullOrEmpty = function(theString)
{
    return theString == null || typeof theString != "string" || theString.trim().length < 1;
}

var stringableIsNullOrEmpty = function(theString)
{
    if(theString == null) return true;
    var type = typeof theString;
    if(type != "string" && type != "number") return true;
    return theString.toString().trim().length < 1;
}

1

आप इसे तर्क द्वारा कह सकते हैं

मान लें कि आपके पास एक चर नाम है, एक स्ट्रिंग है, यह जांचने के लिए कि क्या अशक्त या खाली है

if (typeof (strVal) == 'string' && strVal.length > 0) 
{
// is has a value and it is not null  :)
}
else
{
//it is null or empty :(
}

1

आप एक उपयोगिता विधि बना सकते हैं जिसका कई स्थानों पर पुन: उपयोग किया जा सकता है जैसे:

 function isNullOrEmpty(str){
    var returnValue = false;
    if (  !str
        || str == null
        || str === 'null'
        || str === ''
        || str === '{}'
        || str === 'undefined'
        || str.length === 0 ) {
        returnValue = true;
    }
    return returnValue;
  }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.