Expresiones Regulares en Java
Que tal experto, un saludo antes que nada, te agradezco de antemano tu atención y apoyo para resolver este problemilla.
Tengo una expresión regular en Java la cual valida que una fecha sea válida, funciona correctamente pero solo acepta hasta el día 28 en febrero, necesito me podrías ayudar a modificarla para que acepte hasta el día 29 de febrero, ya que con un if puedo saber si es una año bisiesto o no y así utilizar una expresión regular o la otra.
Te proporciono la expreg que acepta hasta el día 28 de feb, ya hice pruebas con ella y solo funciona hasta el día 28 en febrero sin importar si es bisiesto o no:
String rExp = "^(?:(31)(\\D)(0?[13578]|1[02])\\2|(29|30)(\\D)(0?[13-9]|1[0-2])\\5|(0?[1-9]|1\\d|2[0-8])(\\D)(0?[1-9]|1[0-2])\\8)((?:1[6-9]|[2-9]\\d)?\\d{2})$|^(29)(\\D)(0?2)\\12((?:1[6-9]|[2-9]d)?(?:0[48]|[2468][048]|[13579][26])|(?:16|[2468][048]|[3579][26])00)$";
Espero y me halla explicado bien, y espeor contar con tu valiosa ayuda, de nuevo un cordial saludo.
Tengo una expresión regular en Java la cual valida que una fecha sea válida, funciona correctamente pero solo acepta hasta el día 28 en febrero, necesito me podrías ayudar a modificarla para que acepte hasta el día 29 de febrero, ya que con un if puedo saber si es una año bisiesto o no y así utilizar una expresión regular o la otra.
Te proporciono la expreg que acepta hasta el día 28 de feb, ya hice pruebas con ella y solo funciona hasta el día 28 en febrero sin importar si es bisiesto o no:
String rExp = "^(?:(31)(\\D)(0?[13578]|1[02])\\2|(29|30)(\\D)(0?[13-9]|1[0-2])\\5|(0?[1-9]|1\\d|2[0-8])(\\D)(0?[1-9]|1[0-2])\\8)((?:1[6-9]|[2-9]\\d)?\\d{2})$|^(29)(\\D)(0?2)\\12((?:1[6-9]|[2-9]d)?(?:0[48]|[2468][048]|[13579][26])|(?:16|[2468][048]|[3579][26])00)$";
Espero y me halla explicado bien, y espeor contar con tu valiosa ayuda, de nuevo un cordial saludo.
1 Respuesta
Respuesta de jruben