Foros del Web » Programación web » PHP »

Expresión regular: Códigos postales en España

Estas en el tema de Expresión regular: Códigos postales en España en el foro de PHP en Foros del Web. La cuestión es que los códigos postales en España van desde el 00001 al 52999. He realizado esta expresión: Código PHP: if (! ereg ( "^[00-52]{2}[0-9]{3}$" ...
  #1 (permalink)  
Antiguo 21/09/2006, 09:07
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 8 años
Puntos: 0
Expresión regular: Códigos postales en España

La cuestión es que los códigos postales en España van desde el 00001 al 52999.

He realizado esta expresión:
Código PHP:
if (!ereg("^[00-52]{2}[0-9]{3}$",$reg_zip
Pero luego cuando la ejecuto se cumple desde el 00001 hasta el 55999. ¿Extraño no?

¿Estoy haciendo algo mal en la expresión? Tengo dudas en el [00-52]

Muchas gracias por adelantado.
Saludos.
  #2 (permalink)  
Antiguo 22/09/2006, 14:18
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 8 años
Puntos: 0
Pregunta

¿Alguno tiene idea de cómo solucionar esto?
Muchas gracias por adelantado.
  #3 (permalink)  
Antiguo 23/09/2006, 12:34
 
Fecha de Ingreso: julio-2005
Mensajes: 13
Antigüedad: 9 años, 2 meses
Puntos: 0
Hola amigo,

la siguiente expresión te podría ayudar:

Código PHP:
if (ereg("^(5[0-2]|[0-4][0-9])[0-9]{3}$",$reg_zip)) {
 print 
"es valido";
} else {
 print 
"no es valido";

Espero haberte ayudado..
  #4 (permalink)  
Antiguo 23/09/2006, 21:32
 
Fecha de Ingreso: septiembre-2006
Mensajes: 5
Antigüedad: 8 años
Puntos: 0
mira yo creo que para ese caso deberias de utilziar un condicional, una expresion regular tambien resultaria pero el condicional esta mas sencillo y potente;
  #5 (permalink)  
Antiguo 24/09/2006, 01:18
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 8 años
Puntos: 0
Cita:
Iniciado por kamlife_86 Ver Mensaje
mira yo creo que para ese caso deberias de utilziar un condicional, una expresion regular tambien resultaria pero el condicional esta mas sencillo y potente;
Gracias por tu respuesta. ¿Qué condicional se te ocurriría?

Un saludo.
  #6 (permalink)  
Antiguo 24/09/2006, 11:33
 
Fecha de Ingreso: septiembre-2006
Mensajes: 40
Antigüedad: 8 años
Puntos: 0
Yo creo que bastaría con comprobar que el número introducido está entre 1 y 52999.

Código PHP:
if ($numero =< "1" and $numero => "52999") { echo "El C.P. que ha introducido es válido."; } else { echo "El C.P. que ha introducido no es válido."; } 
Supongo que así debería funcionar. ;)
  #7 (permalink)  
Antiguo 24/09/2006, 12:20
Tew
 
Fecha de Ingreso: enero-2006
Mensajes: 1.581
Antigüedad: 8 años, 7 meses
Puntos: 17
Cita:
Iniciado por Dahn II Ver Mensaje
Yo creo que bastaría con comprobar que el número introducido está entre 1 y 52999.

Código PHP:
if ($numero =< "1" and $numero => "52999") { echo "El C.P. que ha introducido es válido."; } else { echo "El C.P. que ha introducido no es válido."; } 
Supongo que así debería funcionar. ;)
Pero 1 no es igual ke 00001, en este caso. Kiero decir ke 1 no es un CP valido...
  #8 (permalink)  
Antiguo 24/09/2006, 12:43
 
Fecha de Ingreso: septiembre-2006
Mensajes: 40
Antigüedad: 8 años
Puntos: 0
Cita:
Iniciado por Tew Ver Mensaje
Pero 1 no es igual ke 00001, en este caso. Kiero decir ke 1 no es un CP valido...
Tienes razón, no había tenido eso en cuenta.

Acabo de probarlo y creo que justo esto es lo que necesita alexsaiz:

Código PHP:
if ($numero >= "1" and $numero <= "52999" and strlen($numero) == "5") { echo "El C.P. que ha introducido es válido."; } else { echo "El C.P. que ha introducido no es válido."; } 
El código de antes tenía un par de fallos aparte de lo que he añadido ahora, cosas de postear sin probarlo... :P

Última edición por Dahn II; 24/09/2006 a las 12:51
  #9 (permalink)  
Antiguo 24/09/2006, 12:49
Avatar de JavierB
Moderata
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.055
Antigüedad: 12 años, 6 meses
Puntos: 766
Hola a todos.

Solo recordaros que el código 00*** no existe. El primer código postal en España, es el 01001

Saludos,
  #10 (permalink)  
Antiguo 25/09/2006, 10:15
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 8 años
Puntos: 0
Dahn, muchas gracias por tu respuesta, me funciona perfectamente.
Javier, gracias por tu aclaración.

Viendo esto, ¿a alguien se le ocurre una expresión para que acepte los códigos postales sólo desde el 01001 hasta el 52999?

Muchas gracias.
  #11 (permalink)  
Antiguo 03/11/2007, 11:47
 
Fecha de Ingreso: noviembre-2007
Mensajes: 1
Antigüedad: 6 años, 9 meses
Puntos: 0
Re: Expresión regular: Códigos postales en España

(0[1-9]|5[0-2]|[0-4][0-9])[0-9]{3}

Creo q esto te puede servir ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 00:50.
SEO by vBSEO 3.3.2