Foros del Web » Programando para Internet » PHP »

Chequear con regex

Estas en el tema de Chequear con regex en el foro de PHP en Foros del Web. Necesito verificar si un campo tiene el formato correcto, este sería: http://twitter.com/[nombre de usuario con mayúsculas, minúsculas y guión(-)]/status/[número] Gracias....
  #1 (permalink)  
Antiguo 03/01/2009, 12:50
Avatar de cdesseno  
Fecha de Ingreso: mayo-2007
Ubicación: Buenos Aires
Mensajes: 111
Antigüedad: 17 años
Puntos: 1
Chequear con regex

Necesito verificar si un campo tiene el formato correcto, este sería:

http://twitter.com/[nombre de usuario con mayúsculas, minúsculas y guión(-)]/status/[número]

Gracias.
  #2 (permalink)  
Antiguo 03/01/2009, 14:30
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Chequear con regex

Es muy facil:

Código PHP:
if(preg_match('#^http://twitter\.com/([a-z\-])+/status/([\d])+$#i''http://twitter.com/adnsdandasn-dnoa/status/4113578/'))
    echo 
'si';
else
    echo 
'no'
Te recomiendo te leas este aporte:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/

Última edición por Ronruby; 03/01/2009 a las 17:44
  #3 (permalink)  
Antiguo 03/01/2009, 17:34
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Respuesta: Chequear con regex

Si no quieres utilizar el operador i puedes hacerlo con el regex
#^http://twitter\.com/([a-zA-Z_-){3,}/status/(\d)+$#
Explico lo que hago:
Código:
^                            Inicio del contexto
http://twitter               literal
\.                           punto literal (el . es el any-character)
com/                         literal
(                            comienzo de grupo
a-zA-Z_-                     a-z minúsculas y mayúsculas, guión bajo y guión
)                            fin del grupo
{3,}                         Mínimo 3 caracteres para el usuario, sin máximo (corregir esto para cambiar mín/máx)
/status/                     literal
(\d)+                        cualquier número
$                            fin del contexto
__________________
Si te ha gustado lo que he dicho, puedes darme algún punto de reputación, que no te cuesta nada ^_^.

Di no a los juicios de valor!
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:17.