2015-05-09 46 views
1

如何檢查字符串在ruby中是否有效?一個有效的字符串將只包括字符或數字數字或兩者。這是我所嘗試過的:如何檢查字符串在ruby中是否有效?一個有效的字符串將只包括字符或數字編號或者都

str = "abc." 
str[3].is_a? Numeric 
str[3].is_a? String 

「。」這裏也是字符串(因爲ruby沒有char),但是在我的有效字符串定義中,「abc」。是無效的。 是否有任何方法在紅寶石檢查isLetter和isDigital像java一樣?

+0

你能澄清你的驗證測試?爲什麼'abc.'無效? – maerics

回答

2

你在正確的軌道上。 您只需要使用正則表達式來確定接受/拒絕哪些字符。

像這樣的東西會接受所有小寫和大寫字母字符。

str = 'abc.' 
str[/([a-zA-Z]+)/] 

此操作,因爲正則表達式([a-zA-Z]+)一組中的一個或多個字符+匹配()用小寫a-z或大寫A-Z字符。

您可以使用http://rubular.com/來嘗試不同的正則表達式。

1

您是否在尋找正則表達式?

>> 'abc.' =~ /[a-zA-Z]/ 
=> 0 
>> 'abc.' =~ /[0-9]/ 
=> nil 
0

正則表達式:(注意:如果下劃線是可接受的字符然後/\W/是可用的)。

def valid?(str) 
    (str =~ /[^a-zA-Z0-9]/).nil? 
end 

p valid? "123" # => true 
p valid? "123$" # => false 

沒有正則表達式:

def valid?(str) 
    str.count("a-zA-Z0-9") == str.size 
end 

p valid? "123" # => true 
p valid? "123$" # => false 
相關問題