domingo, 4 de noviembre de 2012

[JavaScript] Validar Email

Bueno esto se utiliza en javascript para no sobrecargar el servidor con tantas peticiones por lo cual lo creamos en javascript antes que nada les recomiendo leerse algo sobre expresiones regulares:

Expresiones Regulares W3Schools

Ahora les cito un pequeñó articulo:

Las expresiones regulares constituyen un mecanismo bastante potente para realizar manipulaciones de cadenas de texto. El proceso para el que se usan estas expresiones, presente en el mundo el UNIX y el lenguaje Perl, es el de buscar y/o substituir una subcadena de texto dentro de otra cadena. En principio esto puede hacerse usando los métodos del objeto string, pero el problema surge cuando no tenemos una subcadena fija y concreta sino que queremos buscar un texto que responda a un cierto esquema, como por ejemplo: buscar aquellas palabras que comienzan con http: y finalizan con una \, o buscar palabras que contengan una serie de números consecutivos, etc.; es en estos casos cuando tenemos que utilizar las expresiones regulares.
La subcadena que buscamos en el texto es lo que se llama un patrón y se construye encerrando entre dos barras inclinadas ( / ) una serie de caracteres normales y símbolos especiales llamados comodines o metacaracteres, (algo parecido a buscar archivos con nombre *.bat cuando queremos encontrar los ficheros con extensión bat). Este patrón es una descripción del texto que se está buscando y JavaScript encontrará las subcadenas que concuerdan con ese patrón o definición. Las expresiones regulares se usan con el objeto Regular Expresion y también dentro de los métodos String.match, String.replace, String.search y String.split.
En la tabla que sigue se muestran los caracteres comodín usados para crear los patrones y su significado, junto a un pequeño ejmplo de su utilización.

Significado Ejemplo Resultado
\ Marca de carácter especial /\$ftp/ Busca la palabra $ftp
^ Comienzo de una línea /^-/ Líneas que comienzan por -
$ Final de una línea /s$/ Líneas que terminan por s
. Cualquier carácter (menos salto de línea) /\b.\b/ Palabras de una sóla letra
| Indica opciones /(L|l|f|)ocal/ Busca Local, local, focal
( ) Agrupar caracteres /(vocal)/   Busca vocal
[ ] Conjunto de caracteres opcionales /escrib[aoe]/ Vale escriba, escribo, escribe
La tabla que sigue describe los modificadores que pueden usarse con los caracteres que forman el patrón. Cada modificador actúa sobre el carácter o el paréntesis inmediatamente anterior.

Descripción Ejemplo Resultado
* Repetir 0 o más veces /l*234/ Valen 234, 1234, 11234...
+ Repetir 1 o más veces /a*mar/ Valen amar, aamar, aaamar...
? 1 o 0 veces /a?mar/ Valen amar, mar.
{n} Exactamente n veces /p{2}sado/ Vale ppsado
{n,} Al menos n veces /(m){2}ala/ Vale mmala, mmmala....
{m,n} entre m y n veces /tal{1,3}a/ Vale tala, talla, tallla
Los siguientes son caracteres especiales o metacaracteres para indicar caracteres de texto no imprimibles, como puedan ser el fín de línea o un tabulador, o grupos predefinidos de caracteres (alfabéticos, numéricos, etc...)

Significado Ejemplos Resultado
\b Principio o final de palabra /\bver\b/ Encuentra ver en "ver de", pero no en "verde"
\B Frontera entre no-palabras /\Bver\B/ Empareja  ver con "Valverde" pero no con "verde"
\d Un dígito /[A-Z]\d/ No falla en "A4"
\D Alfabético (no dígito) /[A-Z]\D/ Fallaría en "A4"
\O Carácter nulo

\t Caracter ASCII 9 (tabulador)

\f Salto de página

\n Salto de línea

\w Cualquier alfanumérico,
[a-zA-Z0-9_ ]
/\w+/ Encuentra frase en "frase.", pero no el . (punto).
\W Opuesto a \w
([^a-zA-Z0-9_ ])
/\W/ Hallaría sólo el punto (.)
\s Carácter tipo espacio (como tab) /\sSi\s/ Encuentra Si en "Digo Si ", pero no en "Digo Sientate"
\S Opuesto a \s

\cX Carácter de control X \c9 El tabulador
\oNN Carácter octal NN

\xhh El hexadecimal hh /\x41/ Encuentra la A (ASCII Hex41) en "letra A"

Fuente del articulo: JavaScript Espacio Latino

Ahora si podemos ver el codigo :)

Script:



HTML:

Si lo quieren probar:




Espero que este articulo les haya sido de ayuda.


No hay comentarios:

Publicar un comentario en la entrada