我想验证带有特定后缀的电子邮件地址,该后缀应该类似于电子邮件。它必须为.edu
或必须为@mypost.com
。例如,我有四个电子邮件地址,如下所示:
1)john@learn.edu - 有效
2)john@mypost.com - 有效
3)john@gmail.com - 无效
4)john@dblist.org - 无效
我尝试使用我的user.rb
模型文件中的以下代码来解决问题,但无济于事。
if ('xc@dblist.com' =~ /\A[\w]([^@\s,;]+)@((mypost|[\w-]+\.)+(edu|com))\z/i) != nil
return true
else
return false
end
答案 0 :(得分:1)
您可以使用此正则表达式:
m=3
请参阅demo(我使用\A\w([^@\s,;]+)@(mypost\.com|[\w-]+\.edu)\z
/ ^
进行多语言模式演示)
$
部分与任何(mypost\.com|[\w-]+\.edu)
域和.EDU
匹配。
请注意,如果您不使用捕获的组,请使用MYPOST.COM
。
答案 1 :(得分:1)
答案 2 :(得分:1)
这是一个相当简单的,似乎符合你的规则:
^[\w\-\.]+@(?:(?:[\w\.\-]+\.edu|mypost\.com))$
此部分[^@\s;,]
不需要,因为\w
无法捕获这些内容。
注意: regex101.com是理解正则表达式的绝佳资源。 Example of your regex解释权在右边。我认为这将有助于你理解为什么你的工作不起作用。