2017-04-25 49 views
-3

我想创建自定义的电子邮件正则表达式定制的电子邮件正则表达式

[首页] @ [秒]。[第三]

  • 允许的标志是数字,字母和一些特殊字符(我已经做到了)
  • One @
  • First + second的长度为1到20个字符。
  • 电子邮件不能以点开始或结束。相邻的两个或多个点也不允许使用 。
  • 第三个字符串长度为2或3个字符。

这是我到目前为止有:

^(?!\.)(?=[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-][email protected][a-zA-Z0-9]).{2,21}(?:\.[a-zA-Z0-9].{2,3})$ 

不幸的是,我希望这是行不通的。感谢您的任何提示。

比如我可以彼此相邻添加多个点: 测试... [email protected]

+0

你为什么说这不起作用?你尝试了什么输入和输出是什么? – Alfabravo

+0

好吧,多个点是一个有效的电子邮件值,有什么问题? – zmo

+0

[使用正则表达式验证电子邮件地址](http:// stackoverflow。com/questions/201323/using-a-regular-expression-to-validate-an-email-address) – Amy

回答

1

永远不要写一个正则表达式来检查电子邮件。你永远不会做对。举个例子你说:

允许的迹象数字,字母和一些特殊字符(我已经做到了)

这是极其错误的,因为你是那么不包括Unicode字符像å或ţ这是有效的。我也很确定你不知道@是电子邮件第一部分中的有效值。

第三个字符串长度为2或3个字符。

约选配以下顶级域名是什么:.info.ninja.website.space

所以,请不要。

供参考:

+0

这就是为什么我在标题“自定义电子邮件”中说过的原因。它不必遵守通用标准。无论如何感谢您的回答。 – Knight

0

以下的正则表达式可以帮助你。

^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,3}))$ 

请阅读@zmo发布的答案。

+0

我说的一个案例:这个正则表达式不匹配'foo @ example.website'或多个点事物'foo ..... bar @ example.com',它们都是完全有效的电子邮件地址。 – zmo

相关问题