电子邮件Regex验证

wwtsj6pe  于 2023-10-22  发布在  其他
关注(0)|答案(4)|浏览(155)

如何在电子邮件地址中仅限制数字。我试着在下面,它没有工作。我的电子邮件应该接受字母数字,点,连字符和下划线后跟“@ AnyDomain.com“。但它不应该只接受数字,如**”email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)“**

Pattern regexPattern = Pattern.compile("^[(a-zA-Z0-9-\\_\\.!\\D)]+@[(a-zA-Z)]+\\.[(a-zA-Z)]{2,3}$");
Matcher regmatcher = regexPattern.matcher(email);
rslzwgfq

rslzwgfq1#

您可以使用此正则表达式来验证条件

^\w*?[a-zA-Z]\w+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z

regex验证上述条件。

chhqkbe1

chhqkbe12#

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

[a-zA-Z]+[(a-zA-Z0-9-\\_\\.!\\D)]*[(a-zA-Z0-9)]+@[(a-zA-Z)]+\.[(a-zA-Z)]{2,3}

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

ie3xauqp

ie3xauqp3#

使用正则表达式处理电子邮件可能会有问题。电子邮件并不像你想象的那么简单--有很多有效的字符。理想情况下,你应该让浏览器来做input[type="email"],并向你的用户发送激活电子邮件,以证明电子邮件地址是有效的,但我理解,可能有一个合法的需要,以验证服务器上的地址。
这里有一些有用的信息:https://stackoverflow.com/a/201378/1921385

还需要一个按钮吗?

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

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

所以你可以用这个,把数字部分去掉:

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

regex101.com
下面是一个演示:

input {border:10px solid red;}
input:valid {border-color:green;}
<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" />
7uhlpewt

7uhlpewt4#

下面的正则表达式每次都对我的电子邮件验证有效。然而,这可能不能解决所有情况,因为电子邮件接受一系列字符,最近,不同的格式。如果您使用电子邮件进行身份验证,我建议您发送验证电子邮件以确认或添加额外的身份验证模式。

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

基本上,验证正则表达式的强度在于它可以准确捕获的案例数量,同时检查不符合性(假)。这些字符序列中的每一个在整个验证过程中都有用途。你可以学习更多关于正则表达式here的知识。

相关问题