我正在尝试检测电子邮件地址是否不是两个域之一,但我在使用 ruby 语法时遇到了一些问题。我目前有这个:
if ( !email_address.end_with?("@domain1.com") or !email_address.end_with?("@domain2.com"))
#Do Something
end
这是条件的正确语法吗?
最佳答案
这里不是 or
,而是逻辑 &&
(和),因为您正试图找到匹配 两者 的字符串。
if ( !email_address.end_with?("@domain1.com") && !email_address.end_with?("@domain2.com"))
#Do Something
end
通过使用或
,如果任一条件为真,则整个条件仍然为假。
请注意,我使用的是 &&
而不是 and
,因为它具有更高的优先级。详情为well outlined here
来自评论:
您可以使用 unless
和逻辑或 ||
构建等效条件
unless email_address.end_with?("@domain1.com") || email_address.end_with?("@domain2.com")
这可能更容易阅读,因为 ||
的两边都不必用 !
取反。
关于ruby - 2 if语句中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14418283/