Ayer me entere que ereg estaba deprecada, entonces estoy intentando pasar mis RE para que sean aceptadas por el preg_match, al principio pense que al agregarles el / al principio y final bastaria, pero me esta tirando un warning "Unknown modifier '[' en la linea que corresponde al 'periodo'
Antes (funcionaba)
Código PHP:
private static $validador = Array(
'requerido' => array('expresion' =>'[^[:space:],0]','error'=>' es un dato obligatorio.'),
'usuario' => array('expresion' =>'(^(u|U)(p|P)[0-9]{10,15}[a-z|A-Z]{0,1}$)|^0{0,1}$','error'=>'Ingreso algún usuario inválido.'),
'file' => array('expresion' =>'(^[0-9]{1,7}$)|^0{0,1}$','error'=>'Ingreso algún file inválido.'),
'modulo' => array('expresion' =>'(^[0-9]{1,4}$)|^0{0,1}$','error'=>'Ingreso algún modulo inválido.'),
'periodo' => array('expresion' =>'(^((0[1-9]|1[0-2])/[1-2][0-9]{3})$)|^0{0,1}$','error'=>'Ingreso algún período inválido.'),
'proceso' => array('expresion' =>'(^[0-9]{1,6}$)|^0{0,1}$','error'=>'Ingreso algún proceso inválido.')
);
private static $formularioValido = true;
/**
* Aplica una validación a la cadena
* En caso de que la cadena tenga comas, se separará por las mismas y se hará una validación de cada poisición que fue separada.
*
* @static
* @param string Es el valor (normalmente un post) que tendrá que analizar si está validado o no.
* @param string Es el tipo de validación que se llevará a cabo. Valores posibles: 'requerido' , 'usuario' , 'file' , 'modulo' , 'periodo' , 'proceso' .
* @param string mensaje de error (por defecto será null)
* @return boolean en caso de que el dato sea correcto devolverá true, sino false.
*/
public static function validar($values, $validador, $nombre = null) {
$valido = true;
$values = explode(',',$values);
foreach ($values as $value) {
if (!ereg(self::$validador[$validador]['expresion'], $value)){
$valido = false;
self::$formularioValido = false;
self::$errores[] = $nombre.self::$validador[$validador]['error'];
break;
}
}
return $valido;
}
Actual
Código PHP:
private static $validador = Array(
'requerido' => array('expresion' =>'/[^[:space:],0]/','error'=>' es un dato obligatorio.'),
'usuario' => array('expresion' =>'/(^(u|U)(p|P)[0-9]{10,15}[a-z|A-Z]{0,1}$)|^0{0,1}$/','error'=>'Ingreso algún usuario inválido.'),
'file' => array('expresion' =>'/(^[0-9]{1,7}$)|^0{0,1}$/','error'=>'Ingreso algún file inválido.'),
'modulo' => array('expresion' =>'/(^[0-9]{1,4}$)|^0{0,1}$/','error'=>'Ingreso algún modulo inválido.'),
'periodo' => array('expresion' =>'/(^((0[1-9]|1[0-2])/[1-2][0-9]{3})$)|^0{0,1}$/','error'=>'Ingreso algún período inválido.'),
'proceso' => array('expresion' =>'/(^[0-9]{1,6}$)|^0{0,1}$/','error'=>'Ingreso algún proceso inválido.')
);
private static $formularioValido = true;
/**
* Aplica una validación a la cadena
* En caso de que la cadena tenga comas, se separará por las mismas y se hará una validación de cada poisición que fue separada.
*
* @static
* @param string Es el valor (normalmente un post) que tendrá que analizar si está validado o no.
* @param string Es el tipo de validación que se llevará a cabo. Valores posibles: 'requerido' , 'usuario' , 'file' , 'modulo' , 'periodo' , 'proceso' .
* @param string mensaje de error (por defecto será null)
* @return boolean en caso de que el dato sea correcto devolverá true, sino false.
*/
public static function validar($values, $validador, $nombre = null) {
$valido = true;
$values = explode(',',$values);
foreach ($values as $value) {
if (!preg_match(self::$validador[$validador]['expresion'], $value)){
$valido = false;
self::$formularioValido = false;
self::$errores[] = $nombre.self::$validador[$validador]['error'];
break;
}
}
return $valido;
}