2013-07-08 31 views
5

只有空格串在我的代碼,我需要寫一個,如果其他塊級如何檢查其在JavaScript

when the variable `currentValue` is holding only spaces -> certain code 

但我不知道如何寫這個條件爲currentValue可以串任何尺寸。它可以容納" "," "等 如果我寫currentValue!=" "它檢查單個空間。

+0

你的意思是空間(炭32)準確,或任何空白(行結束,標籤等) ? – georg

+0

你應該嘗試使用谷歌搜索的東西,如'JavaScript匹配字符串'。 – 1983

回答

12

可能看起來像

if(!currentValue.trim().length) { 
    // only white-spaces 
} 

文檔:trim

即使它非常不言自明的; 字符串參考currentValue得到修剪,這基本上意味着在開始和結束的所有空白字符將被刪除。如果整個字符串由空格字符組成,則會將其全部清除,這意味着length的結果爲0,而!0將爲true

性能,我比較了這個解決方案與RegExp來自@mishik的方式。事實證明,.trim()在FireFox中快得多,而RegExp在Chrome中似乎更快。

http://jsperf.com/regexp-vs-trim-performance

+0

兩個downvotes沒有評論,我很傷心:( – jAndy

+0

也許這是因爲在IE <9的支持不足,也許。誰知道。雖然很簡單,但可以簡單地填充String.prototype.trim,甚至更簡單的寫一個評論解釋downvote。 – 1983

+0

它爲我工作..謝謝:) –

8

簡單:

if (/^\s*$/.test(your_string)) { 
    // Only spaces 
} 

要匹配space只:

if (/^ *$/.test(your_string)) { 
    // Only spaces 
} 

說明:/^\s*$/ - 匹配字符串的開頭,然後任意數量的空格(空格,換行,標籤等..),然後結束字符串。 /^ *$/ - 相同,但僅適用於空格。

如果您不想匹配空字符串:將*替換爲+以確保至少存在一個字符。

+0

Downvoter,請解釋。 – mishik

+1

這也匹配空字符串,也是換行符和製表符。 – 1983

+0

確實...已更新。我猜,一個空字符串對於OP來說可以。 – mishik

-1

試戴:

your_string.split(" ").length 

編輯

var your_string = "    "; 
var x = your_string.split(" ").length - 1; 

if (your_string.length > 0 && (your_string.length - x) == 0) { 
    alert("your_string has only spaces"); 
}