Ruby on rails 在RubyonRails中使用regex验证特定后缀的电子邮件地址
我想验证电子邮件地址与一个特定的后缀,这应该是像电子邮件。它必须有Ruby on rails 在RubyonRails中使用regex验证特定后缀的电子邮件地址,ruby-on-rails,ruby,regex,validation,email,Ruby On Rails,Ruby,Regex,Validation,Email,我想验证电子邮件地址与一个特定的后缀,这应该是像电子邮件。它必须有.edu或@mypost.com。例如,我有四个电子邮件地址,如下所示: (一)john@learn.edu-有效 (二)john@mypost.com-有效 (三)john@gmail.com-无效 (四)john@dblist.org-无效 我已经尝试在我的user.rb模型文件中使用下面的代码来解决这个问题,但没有成功 if ('xc@dblist.com' =~ /\A[\w]([^@\s,;]+)@((mypost|[\
.edu
或@mypost.com
。例如,我有四个电子邮件地址,如下所示:
(一)john@learn.edu-有效
(二)john@mypost.com-有效
(三)john@gmail.com-无效
(四)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
您可以使用此正则表达式:
\A\w([^@\s,;]+)@(mypost\.com|[\w-]+\.edu)\z
请参阅(我使用^
/$
在多语言模式下进行演示)
(mypost\.com)[\w-]+\.edu)
部分匹配任何.edu
域和mypost.com
请注意,如果不使用捕获的组,只需使用\A\w[^@\s,;]+@(?:mypost\.com.[\w-]+\.edu)\z
试试这个。看演示
这里有一个相当简单的方法,似乎符合您的规则:
^[\w\-\.]+@(?:(?:[\w\.\-]+\.edu|mypost\.com))$
不需要此部分[^@\s;,]
,因为\w
无论如何都不会捕获这些内容
注意:是了解正则表达式的重要资源。解释在右边。我认为with将帮助您理解您的电子邮件格式无效的原因。添加有效电子邮件格式的所有规则该条件不需要
=~
将返回nil
或Fixnum
nil
是一个假值,Fixnum
将是一个真值,因此if语句变得多余@Stribizev与multiline这将起作用,然后与锚定“^$~@rick一起,u接受的答案将不接受john@learn.sdasd.edu
。您想匹配它吗?对不起,斯特里比雪夫,但我不知道如何在我的条件下使用它,并且我已经编辑了我的问题。谢谢你的回答。请检查这个,也许它有一些关于什么是错误的提示。在Ruby中。
^[\w\-\.]+@(?:(?:[\w\.\-]+\.edu|mypost\.com))$