2012-04-21 29 views
27

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

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

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

+0

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

+2

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

+1

संभावित डुप्लिकेट [कैसे जांचें कि इनपुट टेक्स्ट फ़ील्ड में केवल सफेद रिक्त स्थान हैं?] (Http://stackoverflow.com/questions/2662245/how-to-check -उथर-द-इनपुट-टेक्स्ट-फ़ील्ड-युक्त-केवल-सफेद-रिक्त स्थान) –

उत्तर

47

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

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

Example fiddle

+0

ठीक है, स्ट्रिंग में केवल व्हाइटस्पेस है। – dwerner

4

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

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

अब तुम्हारी हर स्ट्रिंग के लिए उपलब्ध हो जाएगा और आप के रूप में

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

आप प्रारंभ और

यानी स्ट्रिंग के अंत में सफेद रिक्त स्थान को हटाने के लिए इस विधि का उपयोग कर सकते हैं उपयोग कर सकते हैं
" hello ".trim(); // Result will be "hello" 
+2

बिल्ट-इन ऑब्जेक्ट्स प्रोटोटाइप का विस्तार करना एक बुरा विचार है। – sbichenko

+0

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

9

सबसे तेजी से समाधान regex प्रोटोटाइप समारोह test() का उपयोग करने और किसी भी चरित्र है कि एक अंतरिक्ष या लिंक ब्रेक \S नहीं है की तलाश में होगा:

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

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

संबंधित मुद्दे