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