Problemas com validação de e-mail Java Regex
Ao tentar validar endereços de e-mail usando uma expressão regular, um usuário Java encontrou um problema em que o a validação falha mesmo para endereços de e-mail bem formados. Apesar do fato de que a regex corresponde aos endereços de e-mail quando usada em uma função "localizar e substituir" no Eclipse, ela falha quando usada com as classes Pattern e Matcher do Java.
A regex em questão é:
\b[A-Z0-9._%-] @[A-Z0-9.-] \.[A-Z]{2,4}\b
O usuário empregou este código em Java:
Pattern p = Pattern.compile("\\b[A-Z0-9._%-] @[A-Z0-9.-] \\.[A-Z]{2,4}\\b"); Matcher m = p.matcher("[email protected]"); if (m.find()) System.out.println("Correct!");
No entanto, independentemente do endereço de e-mail ser válido ou inválido, a validação de regex falha.
Uma solução potencial
Uma solução sugerida é utilizar o seguinte código Java, que emprega um regex semelhante:
public static final Pattern VALID_EMAIL_ADDRESS_REGEX = Pattern.compile("^}[A-Z0-9._% -] @[A-Z0-9.-] \\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE); public static boolean validate(String emailStr) { Matcher matcher = VALID_EMAIL_ADDRESS_REGEX.matcher(emailStr); return matcher.matches(); }
Este código foi relatado para validar endereços de e-mail de forma confiável.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3