你缺少的开始和结束锚标记,以便您可以参考以下链接Regular expressions with validations in RoR 4和您的正确的正则表达式会,
/^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$/i
你应该尝试这个正则表达式也用于电子邮件验证,这个正则表达式将满足你的所有要求,并检查所有可能的验证。
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$
,这里是正则表达式的解释,这将是有益的理解验证
^ #start of the line
[_A-Za-z0-9-\\+]+ # must start with string in the bracket [ ], must contains one or more (+)
( # start of group #1
\\.[_A-Za-z0-9-]+ # follow by a dot "." and string in the bracket [ ], must contains one or more (+)
)* # end of group #1, this group is optional (*)
@ # must contains a "@" symbol
[A-Za-z0-9-]+ # follow by string in the bracket [ ], must contains one or more (+)
( # start of group #2 - first level TLD checking
\\.[A-Za-z0-9]+ # follow by a dot "." and string in the bracket [ ], must contains one or more (+)
)* # end of group #2, this group is optional (*)
( # start of group #3 - second level TLD checking
\\.[A-Za-z]{2,} # follow by a dot "." and string in the bracket [ ], with minimum length of 2
) # end of group #3
$ #end of the line
测试输出:
Email is valid : [email protected] , true
Email is valid : [email protected] , true
Email is valid : [email protected] , true
Email is valid : [email protected] , true
Email is valid : [email protected] , true
Email is valid : [email protected] , true
Email is valid : [email protected] , true
Email is valid : [email protected] , true
Email is valid : [email protected] , true
Email is valid : [email protected] , true
Email is valid : abc , false
Email is valid : [email protected] , false
Email is valid : [email protected] , false
Email is valid : [email protected] , false
Email is valid : [email protected] , false
Email is valid : [email protected] , false
Email is valid : abc()*@gmail.com , false
Email is valid : [email protected]%*.com , false
Email is valid : [email protected] , false
Email is valid : [email protected] , false
Email is valid : [email protected]@gmail.com , false
Email is valid : ab [email protected] , false
Email is valid : [email protected] , false
缺少锚'^'和'$'。 – Tushar
试试这个^ [_A-Za-z0-9 - \\ +] +(\\。[_A-Za-z0-9 - ] +)* @ [A-Za-z0-9 - ] + 。\ [A-ZA-Z0-9] +)*(\\ [A-ZA-Z] {2,})$; –
你需要你的用户来验证他们的电子邮件地址吗? –