给定域列表,如果包含值,如何匹配?

时间:2012-03-15 00:41:14

标签: ruby-on-rails ruby regex ruby-on-rails-3

我有以下内容:

EXCLUSION_DOMAINS = %w[
  example.com
  test.com
  asdf.com
  yahoo.
  gmail
]

其中一些排除域的完整地址为like.com,其他域只是通用匹配的高级域名。

鉴于此列表并给定一个值,我如何确定该值是否与其中一个排除域w rails 3相匹配?

由于

3 个答案:

答案 0 :(得分:2)

def excluded?(value)
  EXCLUSION_DOMAINS.any? { |domain| value.include? domain }
end

答案 1 :(得分:2)

我使用它来解决这个问题:

my_domain = "gmail.com.br"
EXCLUSION_DOMAINS.any? { |d| my_domain =~ /#{d}/ }

答案 2 :(得分:0)

我认为你可以简单地使用string.split(".").first
即使没有“。” (例如gmail而不是gmail。)你仍然会得到“gmail”