Expresiones regulares con PHP

1 10 2008

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);
  }

Acciones

Información

Un comentario

11 03 2009
Sebastian

Esta muy bueno este diccionario de Expresiones regulares,
Pero estaria bie un buen tutorial!

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s




Seguir

Get every new post delivered to your Inbox.