Problema con la validación de correo electrónico Java Regex
Al intentar validar direcciones de correo electrónico utilizando una expresión regular, un usuario de Java encontró un problema en el que la validación falla incluso para direcciones de correo electrónico bien formadas. A pesar de que la expresión regular coincide con direcciones de correo electrónico cuando se usa en una función de "buscar y reemplazar" dentro de Eclipse, falla cuando se usa con las clases Pattern y Matcher de Java.
La expresión regular en cuestión es:
\b[A-Z0-9._%-] @[A-Z0-9.-] \.[A-Z]{2,4}\b
El usuario ha empleado esto código en 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!");
Sin embargo, independientemente de que la dirección de correo electrónico sea válida o no, la validación de expresiones regulares falla.
Una solución potencial
Una solución sugerida es utilizar el siguiente código Java, que emplea una expresión regular similar:
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(); }
Se ha informado que este código valida direcciones de correo electrónico de manera confiable.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3