首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Email Regex验证

Email Regex验证
EN

Stack Overflow用户
提问于 2019-10-01 17:10:22
回答 4查看 414关注 0票数 1

如何仅限制电子邮件地址中的数字。我在下面试过但没成功。我的电子邮件应该接受α-数字,点,连字符和下划线,然后是"@AnyDomain.com"。但是它不应该只接受像"112233@gmail.com"这样的数字。

代码语言:javascript
复制
Pattern regexPattern = Pattern.compile("^[(a-zA-Z0-9-\\_\\.!\\D)]+@[(a-zA-Z)]+\\.[(a-zA-Z)]{2,3}$");
Matcher regmatcher = regexPattern.matcher(email);
  • Don_123@gmail.com ->有效
  • 12345@gmail.com ->无效
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-10-01 17:25:55

您可以使用这个regex来验证您的条件。

代码语言:javascript
复制
^\w*?[a-zA-Z]\w+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z

regex来验证上述条件。

票数 1
EN

Stack Overflow用户

发布于 2019-10-01 17:35:23

我已经修改了问题中提供的正则表达式。

代码语言:javascript
复制
[a-zA-Z]+[(a-zA-Z0-9-\\_\\.!\\D)]*[(a-zA-Z0-9)]+@[(a-zA-Z)]+\.[(a-zA-Z)]{2,3}

我在开始时添加了a+,以确保电子邮件地址不以数字开头。如果电子邮件地址可以以特殊符号开头,请确保在第一个块中更新它。

票数 0
EN

Stack Overflow用户

发布于 2019-10-01 17:39:25

对电子邮件使用regex可能会有问题。电子邮件并不像你想象的那么简单--有很多有效的字符。理想情况下,您应该让浏览器这样做,input[type="email"],并向您的用户发送激活电子邮件,以证明电子邮件地址是有效的,但我理解,可能有一个合法的需要验证地址上的服务器。

这里有有用的信息:https://stackoverflow.com/a/201378/1921385

仍然需要一个rx?

根据https://emailregex.com/,W3C用于验证input[type=email]的正则表达式是:

代码语言:javascript
复制
/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

所以你可以用这个,拿出数字部分:

代码语言:javascript
复制
/^[a-zA-Z.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

regex101.com

下面是一个演示:

代码语言:javascript
复制
input {border:10px solid red;}
input:valid {border-color:green;}
代码语言:javascript
复制
<input type="text" required="required" pattern="^[a-zA-Z.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" placeholder="type=text, using a pattern" />
<input type="email" required="required" placeholder="type=email, no pattern here" />

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58189462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档