如何檢查字符串在ruby中是否有效?一個有效的字符串將只包括字符或數字數字或兩者。這是我所嘗試過的:如何檢查字符串在ruby中是否有效?一個有效的字符串將只包括字符或數字編號或者都
str = "abc."
str[3].is_a? Numeric
str[3].is_a? String
「。」這裏也是字符串(因爲ruby沒有char),但是在我的有效字符串定義中,「abc」。是無效的。 是否有任何方法在紅寶石檢查isLetter和isDigital像java一樣?
如何檢查字符串在ruby中是否有效?一個有效的字符串將只包括字符或數字數字或兩者。這是我所嘗試過的:如何檢查字符串在ruby中是否有效?一個有效的字符串將只包括字符或數字編號或者都
str = "abc."
str[3].is_a? Numeric
str[3].is_a? String
「。」這裏也是字符串(因爲ruby沒有char),但是在我的有效字符串定義中,「abc」。是無效的。 是否有任何方法在紅寶石檢查isLetter和isDigital像java一樣?
你在正確的軌道上。 您只需要使用正則表達式來確定接受/拒絕哪些字符。
像這樣的東西會接受所有小寫和大寫字母字符。
str = 'abc.'
str[/([a-zA-Z]+)/]
此操作,因爲正則表達式([a-zA-Z]+)
一組中的一個或多個字符+
匹配()
用小寫a-z
或大寫A-Z
字符。
您可以使用http://rubular.com/來嘗試不同的正則表達式。
您是否在尋找正則表達式?
>> 'abc.' =~ /[a-zA-Z]/
=> 0
>> 'abc.' =~ /[0-9]/
=> nil
正則表達式:(注意:如果下劃線是可接受的字符然後/\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
你能澄清你的驗證測試?爲什麼'abc.'無效? – maerics