Foros del Web » Programando para Internet » PHP »

expresion regular

Estas en el tema de expresion regular en el foro de PHP en Foros del Web. Hola amigos, la verdad es que suena tonto pero llevo media mañana intentando (claro queda que no soy muy hábil) crear el patron para una ...
  #1 (permalink)  
Antiguo 15/03/2010, 09:02
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 65
Antigüedad: 21 años
Puntos: 2
expresion regular

Hola amigos, la verdad es que suena tonto pero llevo media mañana intentando (claro queda que no soy muy hábil) crear el patron para una expresion reguklar en PHP que salte si los caracteres introducidos no son solo digitos [0-9], espacios o guiones es decir

00537 660 53 79 -> Valido
005376600548 -> valido
00-537-645 1238 -> valido

he probado con un monton de chorradas que no refieron por respeto a quine pueda lerlas les dejo con la funcion que debe analizar el tema

esta que es parecida valida (o al menos eso creo) numeros con dos decimales.

Código PHP:
function verify_money $money 
    {
    
$pattern "/^\d+(\.\d{2})?$/";
    if ( 
preg_match($pattern$money) ) { return true; } else { return false; } 
    } 
pero con la otra no doy!!!!!

gracias de antemano
  #2 (permalink)  
Antiguo 15/03/2010, 09:04
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: expresion regular

'/([\s-0-9]+)/'

Esto busca los espacios (\s), los - y los carácteres del 0 al 9.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #3 (permalink)  
Antiguo 15/03/2010, 09:07
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 65
Antigüedad: 21 años
Puntos: 2
Respuesta: expresion regular

Muchas gracias AnesGy, lo pruebo no sabes las de vueltas que le he dado.
  #4 (permalink)  
Antiguo 15/03/2010, 09:12
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 65
Antigüedad: 21 años
Puntos: 2
Respuesta: expresion regular

Pues parece que tengo un problema de concepto: pues no va!

hago la historia completa.

Código PHP:
function verify_phone $phone 
    {
    
$pattern "/([\s-0-9]+)/";
    if ( 
preg_match($pattern$phone) ) { return true; } else { return false; } 
    } 
que ess llamada desde aqui:

Código PHP:
if ( !verify_phone($hotel_tel_value) ) { $edit_hotel_format_error_msg .= "Telephone, "; } 
Pero lo dicho se traga cualquier cosa ej:

00351 936A284830 (que tiene una A despues del 936)

De nuevo HELP!!!!
  #5 (permalink)  
Antiguo 15/03/2010, 13:16
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: expresion regular

Ops, aqui no se usan expresiones regulares, ya que la parte del principio (00351 936) es un formato valido aunque el resto no lo sea.

Tienes que ir caracter a caracter (str_strip(cadena) transforma la cadena en un array de caracteres) y comprobar que sea o numerico, o espacio o -.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #6 (permalink)  
Antiguo 16/03/2010, 02:07
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 65
Antigüedad: 21 años
Puntos: 2
Respuesta: expresion regular

¿Que funcion es str_strip? ¿es de php? creoque entiendo lo que me dices pero esa funcion no la se ni la logro encontrar en php.
  #7 (permalink)  
Antiguo 16/03/2010, 02:22
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: expresion regular

Te pido disculpas, noes str_strip sino str_split. Ayer se me fue la pinza, y fui diciendo str_strip por algún motivo. Sabía que se me quedó aguien por avisar XD.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it

Etiquetas: expresion, regular
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 00:36.