如何在电子邮件地址中仅限制数字。我试着在下面,它没有工作。我的电子邮件应该接受字母数字,点,连字符和下划线后跟“@ 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);
- email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)->有效
- email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)->无效
4条答案
按热度按时间rslzwgfq1#
您可以使用此正则表达式来验证条件
regex验证上述条件。
chhqkbe12#
我已经修改了问题中提供的正则表达式。
我在开头添加了[a-zA-Z]+,以确保电子邮件地址不会以数字开头。如果电子邮件地址可以以特殊符号开头,请确保在第一个区块中更新它。
ie3xauqp3#
使用正则表达式处理电子邮件可能会有问题。电子邮件并不像你想象的那么简单--有很多有效的字符。理想情况下,你应该让浏览器来做
input[type="email"]
,并向你的用户发送激活电子邮件,以证明电子邮件地址是有效的,但我理解,可能有一个合法的需要,以验证服务器上的地址。这里有一些有用的信息:https://stackoverflow.com/a/201378/1921385
还需要一个按钮吗?
根据https://emailregex.com/,W3C用来验证
input[type=email]
的正则表达式是:所以你可以用这个,把数字部分去掉:
玩regex101.com
下面是一个演示:
7uhlpewt4#
下面的正则表达式每次都对我的电子邮件验证有效。然而,这可能不能解决所有情况,因为电子邮件接受一系列字符,最近,不同的格式。如果您使用电子邮件进行身份验证,我建议您发送验证电子邮件以确认或添加额外的身份验证模式。
基本上,验证正则表达式的强度在于它可以准确捕获的案例数量,同时检查不符合性(假)。这些字符序列中的每一个在整个验证过程中都有用途。你可以学习更多关于正则表达式here的知识。