Foros del Web » Programando para Internet » PHP »

regular expresion campo requerido

Estas en el tema de regular expresion campo requerido en el foro de PHP en Foros del Web. Me estoy volviendo loco con una expresión regular que no sale. Necesito que el preg_match me devuelva true cuando: tenga minimo 1 caracter cualquiera excepto ...
  #1 (permalink)  
Antiguo 16/09/2011, 09:08
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
regular expresion campo requerido

Me estoy volviendo loco con una expresión regular que no sale.

Necesito que el preg_match me devuelva true cuando:
tenga minimo 1 caracter cualquiera excepto la palabra 'no', tampoco palabras compuetas por espacios ([:space:]) ni cualquier cadena compuesta de ceros '0', '00000', '0000000000' etc...

Tengo algo como esto
Código PHP:
'/^[^[:space:]]$|^[^0]$|^([^n][^o])$/' 
Y los test son estos
Código PHP:
$this->assertFalse(Validaciones::validar('0',));
$this->assertFalse(Validaciones::validar('00000'));
$this->assertFalse(Validaciones::validar(''));            
$this->assertFalse(Validaciones::validar(' '));         
$this->assertFalse(Validaciones::validar('no'));

$this->assertTrue(Validaciones::validar('123'));         
$this->assertTrue(Validaciones::validar('qdsfwe'));      
$this->assertTrue(Validaciones::validar('  q dsfw e'));  
$this->assertTrue(Validaciones::validar('00001'));
$this->assertTrue(Validaciones::validar('noo')); 
Gracias!
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #2 (permalink)  
Antiguo 16/09/2011, 09:30
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: regular expresion campo requerido

has pensando en hacer mas condiciones ?

if (strlen($cadena) > 0)
if ($cadena != 'no')
if (substr_count($cadena , ' ') < 1)

etc...

si quieres un consejo.. usa las expresiones regulares solo cuando sean necesarias.. si se pueden evitar hazlo.

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 16/09/2011, 09:36
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: regular expresion campo requerido

Si lo entiendo, es que en este caso tengo una clase que realiza las validaciones por expresiones regulares. No tengo los permisos para modificar el metodo, pero si puedo agregar una validación más al array donde se encuentran. Por eso necesito hacerlo por medio de una RE.

Código PHP:
private static $validador = Array(
        
'requerido'         => array('expresion' =>'/^([^[:space:]0])$/','error'=>'errorrequerido'),
        
'usuario'           => array('expresion' =>'/(^(u|U)(p|P)[0-9]{10,15}[a-z|A-Z]{0,1}$)|^0{0,1}$|^(no)$/','error'=>'errorusuario'),
        
'file'              => array('expresion' =>'/(^[0-9]{1,7}$)|^0{0,1}$|^(no)$/','error'=>'errorfile'),
        
'modulo'            => array('expresion' =>'/(^[0-9]{1,4}$)|^0{0,1}$|^(no)$/','error'=>'errormodulo'),
        
'periodo'           => array('expresion' =>'/(^((0[1-9]|1[0-2])\/[1-2][0-9]{3})$)|^0{0,1}$|^(no)$/','error'=>'errorperiodo'),
        
'proceso'           => array('expresion' =>'/(^[0-9]{1,6}$)|^0{0,1}$|^(no)$/','error'=>'errorproceso'),
        
'codigo_practica'   => array('expresion' =>'/(^[0-9]{6}$)|(^0{0,1}$)|^(no)$/','error'=>'errorcodigo'),
        
'legajo'            => array('expresion' =>'/(^[0-9]{5}$)|(^(u|U)[0-9]{5}$)/','error'=>'errorlegajo')
    );

Validaciones::validar('123''requerido'); //y luego se llama de este modo 
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #4 (permalink)  
Antiguo 16/09/2011, 09:53
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: regular expresion campo requerido

Lo que busco es justo la negacion de esto

Código PHP:
'/^[[:space:]]$|^0+|^(no)$/' 
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives

Etiquetas: expresion, regular, campos
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 05:16.