स्ट्रिंग का पता कैसे लगाएं जिसमें केवल रिक्त स्थान हैं?


83

एक स्ट्रिंग की लंबाई जिसमें एक स्थान हमेशा 1 के बराबर होता है:

alert('My str length: ' + str.length);

अंतरिक्ष एक चरित्र है, इसलिए:

str = "   ";
alert('My str length:' + str.length); // My str length: 3

मैं एक रिक्त स्ट्रिंग और एक स्ट्रिंग के बीच अंतर कैसे कर सकता हूं जिसमें केवल रिक्त स्थान होते हैं? मैं एक स्ट्रिंग का पता कैसे लगा सकता हूं जिसमें केवल रिक्त स्थान हैं?


1
इसे ट्रिम करें और जांचें कि लंबाई शून्य है। क्या आप jQuery का उपयोग कर रहे हैं?
— चेट्टर हमीं

2
सभी सफेद स्थान निकालें और देखें कि क्या स्ट्रिंग की लंबाई है 0? या केवल व्हाट्सएप स्ट्रिंग्स से मेल खाने के लिए एक नियमित अभिव्यक्ति का उपयोग करें ...
— फेलिक्स क्लिंग

जवाबों:


154

इसे प्राप्त करने के लिए आप स्ट्रिंग में सभी व्हाट्सएप को हटाने के लिए एक नियमित अभिव्यक्ति का उपयोग कर सकते हैं। यदि परिणामस्वरूप स्ट्रिंग की लंबाई है 0, तो आप सुनिश्चित कर सकते हैं कि मूल केवल व्हाट्सएप में निहित है। इसे इस्तेमाल करे:

var str = "    ";
if (!str.replace(/\s/g, '').length) {
  console.log('string only contains whitespace (ie. spaces, tabs or line breaks)');
}


1
खैर, स्ट्रिंग में केवल व्हॉट्सएप शामिल था।
— dwerner

50

सबसे तेज़ समाधान रेगेक्स प्रोटोटाइप फ़ंक्शन टेस्ट () का उपयोग करना होगा और ऐसे किसी भी पात्र की तलाश में होगा जो स्पेस या लाइन ब्रेक नहीं है \S:

if (/\S/.test(str))
{
    // found something other than a space or line break
}

यदि आपके पास एक सुपर लंबी स्ट्रिंग है, तो यह एक महत्वपूर्ण अंतर ला सकता है।


15

रोरी के जवाब के समान, ईसीएमए 5 के साथ अब आप str.trim().lengthनियमित अभिव्यक्ति का उपयोग करने के बजाय बस कॉल कर सकते हैं । यदि परिणामी मान 0 है, तो आपको पता है कि आपके पास एक स्ट्रिंग है जिसमें केवल रिक्त स्थान हैं।

if (!str.trim().length) {
  console.log('str is empty!');
}

आप यहां ट्रिम के बारे में अधिक पढ़ सकते हैं ।


2
मुझे यह जवाब सबसे ज्यादा पसंद है। बहुत चालाक है। 👍
— GTS जो

3
यह सबसे सुरुचिपूर्ण समाधान है।
— जिफिल्टे फिश

11
if(!str.trim()){
  console.log('string is empty or only contains spaces');
}

एक स्ट्रिंग से व्हाट्सएप को हटाकर उपयोग किया जा सकता है String#trim()।

यह जांचने के लिए कि क्या कोई स्ट्रिंग अशक्त या अपरिभाषित है, कोई यह जांच सकता है कि क्या स्ट्रिंग स्वयं गलत है, जिस स्थिति में यह अशक्त, अपरिभाषित या रिक्त स्ट्रिंग है। यह पहला चेक आवश्यक है, क्योंकि तरीकों को लागू करने का प्रयास करने nullया undefinedइसके परिणामस्वरूप त्रुटि होगी। यह जांचने के लिए कि क्या इसमें केवल रिक्त स्थान हैं, कोई यह जांच सकता है कि ट्रिमिंग के बाद स्ट्रिंग गलत है, जिसका अर्थ है कि यह उस बिंदु पर एक खाली स्ट्रिंग है।

if(!str || !str.trim()){
   //str is null, undefined, or contains only spaces
}

वैकल्पिक चेनिंग ऑपरेटर का उपयोग करके इसे सरल बनाया जा सकता है ।

if(!str?.trim()){
   //str is null, undefined, or contains only spaces
}

यदि आप निश्चित हैं कि चर एक स्ट्रिंग होगा, केवल दूसरा चेक आवश्यक है।

if(!str.trim()){
   console.log("str is empty or contains only spaces");
}

8

आप अपने स्ट्रिंग्स के लिए एक ट्रिम फ़ंक्शन बनाकर अपने स्ट्रिंग मूल्य को ट्रिम कर सकते हैं।

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

अब यह आपके हर स्ट्रिंग के लिए उपलब्ध होगा और आप इसका उपयोग कर सकते हैं

str.trim().length// Result will be 0

आप इस विधि का उपयोग स्ट्रिंग के प्रारंभ और अंत में सफेद स्थानों को हटाने के लिए भी कर सकते हैं

"  hello  ".trim(); // Result will be "hello"

4
अंतर्निहित वस्तुओं के प्रोटोटाइप का विस्तार करना एक बुरा विचार है।
— sbichenko

@exizt: क्या होगा यदि यह केवल अपने कोड द्वारा उपयोग किया जाएगा?
— शहजाद

0

ट्रिम फ़ंक्शन बनाकर अपने स्ट्रिंग मूल्य को ट्रिम करें

var text = "  ";
if($.trim(text.length == 0){
  console.log("Text is empty");
}
else
{
  console.log("Text is not empty");
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.