Foros del Web » Programando para Internet » PHP »

Preg_match

Estas en el tema de Preg_match en el foro de PHP en Foros del Web. Saludos, camaradas. Tengo un pequeño problemita declarando algunas regexp en la función preg_match. Código PHP: switch( $type ){             case  "al" :  //Corregir                  if(! preg_match ...
  #1 (permalink)  
Antiguo 19/11/2011, 09:14
Avatar de LanbreGroteo  
Fecha de Ingreso: agosto-2009
Ubicación: $Mx->['Veracruz']
Mensajes: 69
Antigüedad: 14 años, 8 meses
Puntos: 1
Preg_match

Saludos, camaradas.

Tengo un pequeño problemita declarando algunas regexp en la función preg_match.

Código PHP:
switch($type){
            case 
"al"//Corregir
                
if(!preg_match("/^[a-zA-Z0-9.-_]$/"$value)):
                    die();
                else:
                    
$this->_bind $value;
                    return 
$this->_bind;
                endif;
            break;
            
            case 
"s"//Corregir
                
if(!preg_match("/^[a-zA-Z.-_]$/"$value)):
                    die();
                else:
                    
$this->_bind $value;
                    return 
$this->_bind;
                endif;
            break;

Lo que deseo hacer con esta función es que cuando se ingrese una cadena, esta verifique si tiene algun caracter que no está comprendido en la expresión regular, de caso contrario, finalizar el script.

Cuando le pongo al $type='s' -como se ve en la función, lo único que deseo que comprenda es valores de a a z sean mayúsculas y minísculas pero, si le pongo un valor númerico a la cadena: "Ejemplo3", me sigue arrojando el resultado.

¿Alguna sugerencia?
¡Gracias!
__________________
Et credo in Serpentem, mysterium mysteriorum. In nomen eius Baphomet
  #2 (permalink)  
Antiguo 19/11/2011, 13:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Preg_match

Pues acabo de probar las expresiones y de ninguna manera sucede lo que comentas, no entiendo que problema es el que tienes realmente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/11/2011, 14:38
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Preg_match

El código me parece que está bien. ¿Por qué no posteas el cómo haces uso del código y qué es lo que muestra exactamente?
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #4 (permalink)  
Antiguo 19/11/2011, 21:09
Avatar de LanbreGroteo  
Fecha de Ingreso: agosto-2009
Ubicación: $Mx->['Veracruz']
Mensajes: 69
Antigüedad: 14 años, 8 meses
Puntos: 1
Pregunta Respuesta: Preg_match

Código PHP:
public function check($type$value)
    {
        switch(
$type){
            case 
"al":
                if(
preg_match("/^[a-zA-Z0-9.-_]$/"$value)):
                    die();
                else:
                    
$this->_bind $value;
                    return 
$this->_bind;
                endif;
            break;
            
            case 
"s":
                if(
preg_match("/^[a-zA-Z.-_]$/"$value)):
                    die();
                else:
                    
$this->_bind $value;
                    return 
$this->_bind;
                endif;
            break;
            
            case 
"n":
                if(!
is_numeric($value) && ctype_digit($value)):
                    die();
                else:
                    
$this->_bind $value;
                    return 
$this->_bind;
                endif;
            break;
        }
    } 
Entonces... esto lo uso de esta manera
Código PHP:
$se->check('al''Usuario90'); 
pero, siempre me devuelve la cadena y no la checa. Si pongo: $se->check('n', 'Hola'); me sigue devolviendo la cadena y no me checa si es un número o dígito.

¿Por qué?
__________________
Et credo in Serpentem, mysterium mysteriorum. In nomen eius Baphomet
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 02:43.