clase Validador de emails

Una pequeña clase para validar emails hecha en PHP:

ValidadorEmail.php

PHP:
  1. <?php
  2. class ValidadorEmail
  3. {
  4.     /**
  5.       * variables miembro Públicas
  6.       */
  7.     var $email; // dirección de email a comprobar (String)
  8.  
  9.  
  10.     /**
  11.       * variables miembro Privadas
  12.       */
  13.     var $exp_reg; // expresión regular (String)
  14.  
  15.  
  16.  
  17.     /**
  18.       * método públco comprobarEmail
  19.       *  @parametros  Ninguno
  20.       *  @devuelve    (Boolean)
  21.       */
  22.  
  23.     function comprobarEmail ()
  24.     {
  25.         $this->exp_reg"^[[:alnum:]_-]+"; // equivale a "^[a-z0-9_-]+"
  26.         $this->exp_reg .= "(\.[[:alnum:]_-]+){0,}"; // equivale a "(\.[a-z0-9_-]+){0,}"
  27.         $this->exp_reg .= "@";
  28.         $this->exp_reg .= "[[:alnum:]_-]+"; // equivale a "[a-z0-9_-]+"
  29.         $this->exp_reg .= "(\.[[:alnum:]_-]+){0,}"; // equivale a "(\.[a-z0-9_-]+){0,}"
  30.         $this->exp_reg .= "(\.[[:alpha:]]{2,3})$"; // equivale a "(\.[a-z]{2,3})$"
  31.  
  32.         if ( ereg ( $this->exp_reg , $this->email ) )
  33.         {
  34.             return (true);
  35.         }
  36.         else
  37.         {
  38.             return (false);
  39.         }
  40.  
  41.     }
  42. }
  43. ?>

Y un ejemplo de utilización:

comprobar_emails.php

PHP:
  1. <?php
  2. // incluimos la clase
  3. include ( "ValidadorEmail.php" );
  4.  
  5. // creamos un array con varios emails válidos y no válidos para el ejemplo
  6. $emails = array(
  7.                 "joan@joan.net",
  8.                 "joan.joan@joan.org",
  9.                 "joan@joan.co.ar",
  10.                 "joan@joan.joan.joan.co.ar",
  11.                 "joan@joan.joan.co.ar.re.ro",
  12.                 "joan@joan.joan.com.ba.re.rom",
  13.                 "joan@joan.joan.co.rem.roma",
  14.                 "joan.@.joan.com",
  15.                 "@joan@joan.com",
  16.                 "joan.com",
  17.                 "joan@joancom",
  18.                 "joan@joan.",
  19.                 "joañ@joan.com",
  20.                 "joaç@joan.com",
  21.                 "@joan.com",
  22.                 "joan.joan@.com",
  23.                 " joan@ joan.com",
  24.                 "joan@ joan.com",
  25.                 ".joan@joan.com",
  26.                 "joan@joan,com"
  27.                 );
  28.  
  29. // instanciamos la clase
  30. $validar = new ValidadorEmail ();
  31.  
  32. // iteramos el array de emails para comprobar su validez
  33. for ( $i=0 ; $i<sizeof($emails) ; ++$i )
  34. {
  35.     // asignamos el email a comprobar
  36.     $validar->email = $emails[$i];
  37.     // comprobamos su validez mediante el método de comprobación
  38.     $retorno = $validar->comprobarEmail ();
  39.  
  40.     if ( $retorno == false )
  41.     {
  42.         echo "<b><font type='Courier' color='red'>Email erróneo>> " . $emails[$i] . "</font></b><br />";
  43.     }
  44.     else
  45.     {
  46.         echo "<b><font type='Courier' color='green'>Email correcto>> " . $emails[$i] . "</font><b><br />";
  47.     }
  48.  
  49. }
  50. ?>

Lo cual devloverá:

Email correcto >> joan@joan.net
Email correcto >> joan.joan@joan.org
Email correcto >> joan@joan.co.ar
Email correcto >> joan@joan.joan.joan.co.ar
Email correcto >> joan@joan.joan.co.ar.re.ro
Email correcto >> joan@joan.joan.com.ba.re.rom
Email erróneo >> joan@joan.joan.co.rem.roma
Email erróneo >> joan.@.joan.com
Email erróneo >> @joan@joan.com
Email erróneo >> joan.com
Email erróneo >> joan@joancom
Email erróneo >> joan@joan.
Email erróneo >> joañ@joan.com
Email erróneo >> joaç@joan.com
Email erróneo >> @joan.com
Email erróneo >> joan.joan@.com
Email erróneo >> joan@ joan.com
Email erróneo >> joan@ joan.com
Email erróneo >> .joan@joan.com
Email erróneo >> joan@joan,com

Referencias de interés:
* Tutorial de expresiones regulares en BULMA

Comments

Comments are closed.