我熟悉如何检查字符串是否包含子字符串,并且熟悉如何检查单个字母是数字还是字母,但我如何检查字符串是否包含任何字母?
def letters?(string)
# what do i do here?
end
# string could be anything from '111' to '1A2' to 'AB2589A5' etc...
string = '1A2C35'
if letters?(string) == true
# do something if string has letters
else
# do something else if it doesnt
end
答案 0 :(得分:4)
检查字符串是否包含任何字母的正确方法是使用\p{L}
匹配器。那样你就匹配
"ï" # in "naĩve"
以及
"ç" # in Barça
代码如下:
def letters? string
!string[/\p{L}/].nil?
end
答案 1 :(得分:3)
我想,你可以尝试类似的东西:
def letters?(string)
string.chars.any? { |char| ('a'..'z').include? char.downcase }
end
如果你不想使用正则表达式。如果字符串中有任何字母,则此方法返回true
:
> letters? 'asd'
=> true
> letters? 'asd123'
=> true
> letters? '123'
=> false
答案 2 :(得分:1)
此代码检查是否有任何字母从A到Z,大写和小写使用正则表达式。如果是,则返回true,否则返回false。这个语法是一个简单的if else语句。
def letters?
self.match(/[A-Za-z]/) ? true : false
end
答案 3 :(得分:-2)
def letters?(string)
if (string =~ /[A-Za-z]/).to_s.length > 0
return true
else
return false
end
end