【发布时间】:2017-12-12 10:34:07
【问题描述】:
我刚刚开始学习如何使用正则表达式,我正在尝试创建一个正则表达式来验证 Ruby 中的电子邮件地址。这是我到目前为止得到的:
emailregex = /([a-zA-Z]+([_\-.][a-zA-Z]*)*@\D+[.]\D+)/
str = "abc_def@hotmail.com"
puts str.scan emailregex
预期输出:
abc_def@hotmail.com
实际输出:
abc_def@hotmail.com
_def
我看过一些电子邮件正则表达式验证,但我想知道我的正则表达式有什么问题。感谢您的建议。
【问题讨论】:
-
您可以使用w3.org/TR/html5/forms.html#valid-e-mail-address 的第一道防线过滤正则表达式,即
^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$,然后发送验证电子邮件。
标签: ruby-on-rails ruby regex email