2011-10-01 75 views
2

我想發送消息到,對於NO_CONTENT測試紅寶石字符串對象:測試字符串沒有內容

"".content? => false # same as .empty? 
" ".content? => false # same as .blank? 
"\n\t".content? => false # new feature 

特別是,如果有任何一個人能讀懂有content?將通過真實的。我將猴子補丁的字符串類與正則表達式做到這一點。

"\n\t\n\n".gsub(/[\n|\t]/,'').empty? 

這讓我接近,但我可能會重新發明輪子,並希望有一個更完整的解決方案。

回答

2

前檢查strip它。

"\n\t".strip.empty?

+0

涼,不知道有關 – bonhoffer

1

像這樣的事情?

class String 
    def content? 
    self !~ /\A\s*\z/ 
    end 
end 

"".content? #=> false 
" ".content? #=> false 
"\n\t".content? #=> false 
"foo".content? #=> true 
+0

你就不能做到'!〜而不是在括號包裹它,否定整個表達式'? – d11wtq

+0

當然,你可以,我剛剛從正則表達式開始匹配,然後在它前面插入否定詞。現在修復,謝謝! –