使用 java 正则表达式进行 Emailid 验证

里沙巴

任何人都可以帮助我找到使用“java regex”解决此问题的方法。

问题:EmailId 应采用以下格式 <<1st part>>.<<2nd part>>@<<3rd part>><<4th part>>

第一部分应包含字母数字字符,并且必须至少包含 1 个大写字母、1 个小写字母和 1 个数字。

第二部分应包含字母数字字符。

第三部分应该是长度为 3 到 8 的字母值。

第四部分可以是“.com”或“.co.in”

我的解决办法是:

if(EmailId.matches(""^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{3,}\\.[\\w&&[^_]]+@[\\w&&[^_]]{3,8}\\.(com|co\\.in)")){
        return true;
}

但是这个解决方案接受“[email protected]”这个电子邮件ID,这是不可接受的。

我不知道我哪里出错了。

请帮忙!!!!!!!!

维克多·斯特里比尤夫

由于.在您的模式使用,您的正则表达式不起作用如果您不允许使用所有字符,则应该只使用您允许的特定类型的字符。

我建议:

.matches("(?=\\p{Alnum}*\\p{Upper})(?=\\p{Alnum}*[0-9])(?=\\p{Alnum}*\\p{Lower})\\p{Alnum}*[.]\\p{Alnum}+@\\p{Alpha}{3,8}[.]co(m|[.]in)"))

请参阅Java 演示由于该模式与 一起使用.matches(),因此^在开始和$结束时都不需要锚点。

详情

  • (?=\\p{Alnum}*\\p{Upper}) - 从字符串的开头开始,0+ 字母数字字符后必须有一个大写字母
  • `(?=\p{Alnum}*[0-9]) - 从字符串的开头开始,0+ 字母数字字符后必须有一个数字
  • (?=\\p{Alnum}*\\p{Lower}) - 从字符串的开头开始,0+ 字母数字字符后必须有一个小写字母
  • \\p{Alnum}*- 0或多个字母数字字符(替换*+,如果你需要至少需要1)
  • [.]- 文字.字符
  • \\p{Alnum}+ - 1 个或多个字母数字字符
  • @- 文字@字符
  • \\p{Alpha}{3,8} - 3 到 8 个或更多字母字符
  • [.]co(m|[.]in)-.com.co.in在字符串的末尾。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章