Expressão Regular

3 respostas
R

Olá

essa expressão regular valida uma data dd/mm/aaaa,
como faço para validar tambem dd/mm/aa na mesma expressao.

//expressão regular para validar data no formato dd/mm/aaaa
	String reg = "(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\\d\\d"; valida dd/mm/aaaa

	String reg1 = "(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.]\\d\\d"; \\valida dd/mm/aa

                como colocar na expressao (19|20)\\d\\d | d\\d

3 Respostas

W

Tenta:

String reg = "(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.]{19|20}\\d\\d";
O
String texto = "^\w+$";
String branco = "^\s+$";
String letras = "^[a-zA-Z]+$";
String letras_numeros = "^[a-zA-Z0-9\s]+$";
String sem_espaco = "^[a-zA-Z0-9]+$";
String numeros = "^[0-9]+$";
String numeros_inteiros = "^[0-9]+$";
String letra_ou_numero = "^([a-zA-Z]|[0-9])$";
String ponto_flutuante = "^((\d+(\.\d*)?)|((\d*\.)?\d+))$";
String ponto_decimal = "^((\d+(\,\d*)?)|((\d*\,)?\d+))$";
String ponto_decimal_2_casas = "^(\d+((,\d{1,2})|(\.\d{1,2}))?)$";
String email = "^.+\@.+\..+$";
String nao_nulo = "^[\s|\S]+$";
String rg = "[0-9]\.[0-9]{3}\.[0-9]{3}\-\d";
String cpf = "[0-9]\.[0-9]{3}\.[0-9]{3}\-\d";
String data = "^([0-9]{2}\/[0-9]{2}\/[0-9]{4})$";
String data_hora = "^([0-9]{2}\/[0-9]{2}\/[0-9]{4}\s[0-9]{2}:[0-9]{2})$";
String cep = "^[0-9]{8}$";

No seu caso

String data = "^([0-9]{2}\/[0-9]{2}\/[0-9]{4})$"; //dd-mm-yyyy
String data = "^([0-9]{2}\/[0-9]{2}\/[0-9]{2})$"; //dd-mm-yy

Espero ter ajudado

P

Depende do que vc quer:

"^([0-9]{2}\/[0-9]{2}\/[0-9]{2})$" aceita 99/99/99

"^(([012][1-9]|[123]0|31)\/[0-9]{2}\/[0-9]{2})$" ja restringe um pouco

"^(([012][1-9]|[123]0|31)\/(0[1-9]|1[012])\/[0-9]{2})$" restringe mais, mas aceita 31/02/99

Vc pode complicar essa expressão o quanto quiser, para obter a precisão necessária, mas uma hora ela pode ficar proibitiva de tão complicado (inclusive se vc tentar prever anos bissextos usando ER pura, usando matemática seria mais simples e legivel).

Criado 8 de setembro de 2008
Ultima resposta 8 de set. de 2008
Respostas 3
Participantes 4