【发布时间】:2013-04-24 19:54:00
【问题描述】:
我正在尝试创建一个表达式来验证 Gmail 地址。 这就是我到目前为止所做的。
^([\w]*[\w\.]*(?!\.)@gmail.com)
我正在尝试创建一个表达式来验证 Gmail 地址。 这就是我到目前为止所做的。
但它没有按我的意愿工作。
Gmail 地址:
- 第一个和最后一个字符必须是 [a-z0-9]
- 用户名内容仅 [a-z0-9.]
- 不能有连续的句点(即:
e..o@gmail.com[This is wrong]) - 用户名的长度必须在 6 到 30 个字母之间。
说实话,我对正则表达式没有太多经验。
顺便问一下,有正则表达式的文档吗?
【问题讨论】:
-
另外,
@之前的部分必须至少有 6 个字母数字(不包括点!)字符。 -
如果这是一个假设对 GMail 地址的某些要求的分配,那没关系 - 但您声明的要求并不是 GMail 实际执行的要求。名称中的双点是允许的(并且被忽略),以
+开头的后缀也是如此。名称部分和“gmail.com”域名不区分大小写,因此允许使用大写字母。我不知道所有的规则。你的实际目标是什么? (很难想到您想要验证 gmail 地址和仅 gmail 地址的应用程序。) -
扩展@KeithThompson 的回复。您的正则表达式要求满足 gmail 地址的注册条件。您忽略了这样一个事实,即 gmail 允许您在用户名的末尾添加一个 +,然后在它后面添加任何您想要的文本。它还允许您添加任意数量的点(甚至在用户名的开头/结尾处)。它还接受具有不同大小写的地址。您糟糕的规范使您要求的正则表达式在现实世界中毫无用处。最好使用officially compliant regex
-
我的 gmail 地址中没有 gmail.com。
标签: regex