Expresiones regulares con PHP
Bueno luego de estar buscando algunas expresiones útiles aquí les dejo algunas funciones que utilizo para validar algunos datos que provienen de formularios:
/** * Función que valida un campo de tipo email * var: campo de texto a validar * Devuelve FALSE no cumple y TRUE si cumple */ function valida_email($var){ if(!ereg("([A-Za-z0-9_.-]+@[A-Za-z0-9_.-]+\.[A-Za-z0-9_-]+)",$var)) { return false; }else{ return true; } }
/** * Función que valida un texto del alfanumérico con acentos en mayúsculas y minúculas * var: campo de texto a validar * min: caracteres mínimos * max: caracteres máximos * Devuelve FALSE no cumple y TRUE si cumple */ function valida_clave($var,$min,$max){ if(!eregi("^[a-zA-ZñáéíóúüÑÁÉÍÓÚÜ0-9_]{".$min.",".$max."}$",$var)) { return false; }else{ return true; } } function valida_texto_latino_con_espacio($var,$min,$max){ if(!eregi("^[a-zA-ZñáéíóúüÑÁÉÍÓÚÜ ]{".$min.",".$max."}$",$var)) { return false; }else{ return true; } } function valida_texto_latino($var,$min,$max){ if(!eregi("^[a-zA-ZñáéíóúüÑÁÉÍÓÚÜ]{".$min.",".$max."}$",$var)) { return false; }else{ return true; } } function valida_texto($var,$min,$max){ if(!eregi("^[a-zA-Z]{".$min.",".$max."}$",$var)) { return false; }else{ return true; } } function numero_rango($var,$min,$max){ if(!eregi("^[0-9]{".$min.",".$max."}$",$var)) { return false; }else{ return true; } } $var = preg_replace("/[^\w]/","",$var); if ($valor == "") { return false; } $var=(int)($var); if ($var>$max){ return false; } if ($var<$min){ return false; } return true; }
//Verificar y validar fechas
//Considerando que puede usarse los siguiente caracteres como separador de dígitos: “/”, “-” y “.”; además del siguiente formato DD-MM-YYYY.
function check_date($date){ $seperator = "[\/\-\.]"; return preg_match("#^(((0?[1-9]|1\d|2[0-8]){$seperator}(0?[1-9]|1[012])|(29|30){$seperator}(0?[13456789]|1[012])|31{$seperator}(0?[13578]|1[02])){$seperator}(19|[2-9]\d)\d{2}|29{$seperator}0?2{$seperator}((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))$#", $date)==1?true:false; }
//Validando dirección IP
//IP’s válidas entre 0.0.0.0 y 255.255.255.255
function valid_ip($ip_address){ $val_0_to_255 = "(25[012345]|2[01234]\d|[01]?\d\d?)"; $pattern = "#^($val_0_to_255\.$val_0_to_255\.$val_0_to_255\.$val_0_to_255)$#"; return preg_match($pattern, $ip_address, $matches); }
//Email correo@dominio.com
function checkEmail($email){ $reg = "#^(((([a-z\d][\.\-\+_]?)*)[a-z0-9])+)\@(((([a-z\d][\.\-_]?){0,62})[a-z\d])+)\.([a-z\d]{2,6})$#i"; return preg_match($reg, $email); }
No Comments »
RSS feed for comments on this post. TrackBack URL
