我试图找出一个字符串是否包含两次以上的某个符号。例如,
is_valid_email("joey@g@mail.com")
如果有两个以上的false
或"@"
,则应返回"."
。我可以使用这样的东西吗?
if string.include?("@") > 2
return false
else
return true
end
答案 0 :(得分:5)
您可以使用String#count
。另外,仅返回if
或true
的{{1}}语句没有太多意义;布尔条件本身已经是false
或true
,因此您可以直接将其直接返回。在这种情况下,由于false
部分返回if
,而false
返回else
,因此可以否定条件:
true
或使用相反的条件:
return !(string.count('@') >= 2)
但是,如果您要验证一个字符串看起来像一个电子邮件地址,那么您似乎想确保该字符串恰好包含一个“ @”:
return string.count('@') < 2
只要在方法正文中进行此检查后没有其他代码,就可以关闭return string.count('@') == 1
关键字;方法会自动返回其最后一个表达式的值。