You are on page 1of 8

Carácter

^ $ * + ? Principio de entrada o línea. Fin de entrada o línea. El carácter anterior 0 o más veces. El carácter anterior 1 o más veces.

Texto buscado

El carácter anterior una vez como máximo (es decir, indica que el carácter anterior es opcional).

. x|y {n} {n,m} [abc]

Cualquier carácter individual, salvo el de salto de línea. x o y. Exactamente n apariciones del carácter anterior. Como mínimo n y como máximo m apariciones del carácter anterior. Cualquiera de los caracteres entre corchetes. Especifique un rango de caracteres con un guión (por ejemplo, [a-f] es equivalente a [abcdef]).

[^abc]

Cualquier carácter que no esté entre corchetes. Especifique un rango de caracteres con un guión (por ejemplo, [^a-f] es equivalente a [^abcdef]).

\b \B \d \D \f \n \r \s

Límite de palabra (como un espacio o un retorno de carro). Cualquiera que no sea un límite de palabra. Cualquier carácter de dígito. Equivalente a [0-9]. Cualquier carácter que no sea de dígito. Equivalente a [^0-9]. Salto de página. Salto de línea. Retorno de carro. Cualquier carácter individual de espacio en blanco (espacios, tabulaciones, saltos de página o saltos de línea).

\S \t \w \W

Cualquier carácter individual que no sea un espacio en blanco. Tabulación. Cualquier carácter alfanumérico, incluido el de subrayado. Equivalente a [A-Za-z0-9_]. Cualquier carácter que no sea alfanumérico. Equivalente a [^A-Za-z0-9_].

be\/|(?:[a-z]{2. por lo menos un digito y un alfanumérico.4}/ ^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.3}\.4}$ (Por ejemplo 01/01/2007) Hora ^(0[1-9]|1\d|2[0-3]):([0-5]\d):([0-5]\d)$ (Por ejemplo 10:45:23) Número tarjeta de crédito Número teléfono Código postal Certificado Identificación Fiscal ^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4. esta es tu expresión regular: 1. /http:\/\/(?:youtu\.)?[A-Z]|[A-Z](-|\.}@([\w-]{2.)*([\w-]{2.}\.)? [0-9A-Z]|\d{8}(-|\.\'\/\\\+&%\$#_]*)?$ Contraseña segura (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8.10})$ (Entre 8 y 10 caracteres.2}\/\d{2.2}\/\d{1..la puede poner en los comentarios y yo la incorporaré a esta tabla.. ^\+?\d{1.com\/watch(?:\?|#\!)v=)([\w-]{11}).\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\\.3}-? ?[0-9]{6.\?\.)?[A-Z])$ [a-z] 4. Validar número de tarjeta de crédito Ahora que tan de moda está el e-commerce seguro que esto le vendrá bien a más de uno: 1.7])\ d{2}?\s?\d{6}-?\s?\d{5}$ ^[0-9]{2. Validar todas las etiquetas de imagen sin cerrar .]?\(?(?:\d{2.La tabla siguiente contiene algunos de los patrones más utilizados a la hora de validar formularios. ^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4.)?youtube\. Cualquier letra en minuscula Entero Correo electrónico URL ^(?:\+|-)?\d+$ /[\w-\.)[\w-]{2.)?0?\d{7}(-|\.}\. Recoger ID de un vídeo de Youtube Si necesitas recoger el ID de un vídeo de Youtube en sus múltiples combinaciones..]{3.*/gi 7.3})\)?[. Validar un número de teléfono Con este snippet se validarán todos los número de teléfono pertenecientes a los listados en la Wikipedia: 1.]?\d\d\d[.7])\ d{2}-?\s?\d{6}-?\s?\d{5}$ 6.7}$ ^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$ ^(X(-|\.]?\d\d\d\d$ 5.3}?[. Si alguien conoce alguna expresión regular más -que pueda ser útil en la validación de formularios. y no puede contener caracteres espaciales) Fecha ^\d{1.)?\d{7}(-|\.

^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$ 10. es el de buscar y/o substituir una subcadena de texto dentro de otra cadena. /^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]). /^[a-z\d_]{4. Expresiones Regulares Las expresiones regulares constituyen un mecanismo bastante potente para realizar manipulaciones de cadenas de texto. presente en el mundo el UNIX y el lenguaje Perl. esto te será de gran ayuda: 1.search y String. String.replace. Las expresiones regulares se usan con el objeto Regular Expresion y también dentro de los métodos String. es en estos casos cuando tenemos que utilizar las expresiones regulares. El proceso para el que se usan estas expresiones.bat cuando queremos encontrar los ficheros con extensión bat). como por ejemplo: buscar aquellas palabras que comienzan con http: y finalizan con una \. 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. Validar código postal En muchas ocasiones necesitamos recoger en los formularios de alta el código postal: 1. etc. o buscar palabras que contengan una serie de números consecutivos.. 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.match. pero el problema surge cuando no tenemos una subcadena fija y concreta sino que queremos buscar un texto que responda a un cierto esquema. (algo parecido a buscar archivos con nombre *. Validar una dirección IP Si necesitas validar una dirección IP introducida por un usuario.Ahora que prácticamente todos empleamos xHTML es interesante comprobar que todas nuestras etiquetas de imagen están correctamente cerradas: 1.15}$/i Además el nombre estaría utilizando sólo caracteres de la A-z y números.){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/ 9. En principio esto puede hacerse usando los métodos del objeto string. Validar un nombre de usuario Si por ejemplo quisiésemos validar un nombre de usuario con un mínimo de 4 caracteres y un máximo de 15 haríamos lo siguiente: 1. En la tabla que sigue se muestran los caracteres comodín usados para .split. String. <img([^>]+)(\s*[^\/])></img([^> 8.

Descripción Ejemplo Resultado * Repetir 0 o más veces /l*234/ Valen 234. Vale ppsado + Repetir 1 o más veces /a*mar/ /a?mar/ /p{2}sado/ ? {n} 1 o 0 veces Exactamente n veces .. carácter (menos salto de línea) /\b. junto a un pequeño ejmplo de su utilización. aamar. Significado Ejemplo Resultado \ Marca de carácter especial ^ Comienzo de una línea $ Final de una línea Cualquier /^-/ /\$ftp/ Busca la palabra $ftp Líneas que comienzan por Líneas que terminan por s /s$/ .crear los patrones y su significado. 11234.. Valen amar. escribo. Valen amar.\b/ Palabras de una sóla letra | Indica opciones ( Agrupar ) caracteres [ Conjunto de ] caracteres opcionales /(L|l|f|)ocal/ Busca Local.. Cada modificador actúa sobre el carácter o el paréntesis inmediatamente anterior. focal Busca vocal /(vocal)/ /escrib[aoe]/ Vale escriba. mar. 1234. local.. aaamar. escribe La tabla que sigue describe los modificadores que pueden usarse con los caracteres que forman el patrón.

o grupos predefinidos de caracteres (alfabéticos.. mmmala. Vale tala.".3}a/ Los siguientes son caracteres especiales o metacaracteres para indicar caracteres de texto no imprimibles. tallla /tal{1.n} entre m y n veces /(m){2}ala/ Vale mmala. pero no en "Digo Sientate" \c9 El tabulador \oNN Carácter octal NN \xhh El hexadecimal hh /\x41/ Encuentra la A (ASCII Hex41) en "letra A" . /\W/ Hallaría sólo el punto (..} Al menos n veces {m.. numéricos. etc. pero no en "verde" Empareja ver con /\Bver\B/ "Valverde" pero no con "verde" /[A-Z]\d/ /[A-Z]\D/ No falla en "A4" Fallaría en "A4" Encuentra frase en /\w+/ "frase.) Encuentra Si en "Digo Si /\sSi\s/ ". pero no el .. como puedan ser el fín de línea o un tabulador.{n. talla. [a-zA-Z0-9_ ] \W Opuesto a \w ([^a-zA-Z0-9_ ]) \s Carácter tipo espacio (como tab) \S \cX Opuesto a \s Carácter de control X Ejemplos /\bver\b/ Resultado Encuentra ver en "ver de". (punto).) Significado \b Principio o final de palabra \B Frontera entre nopalabras \d \D \O \t Un dígito Alfabético (no dígito) Carácter nulo Caracter ASCII 9 (tabulador) \f \n \w Salto de página Salto de línea Cualquier alfanumérico..

el mas simple posible. pata o pate. Por ejemplo 0-9 serían todos los números de 0 a 9 inclusive. eso es una expresión regular que define todas las cadenas de caracteres que empiecen con cualquier cosa seguida de . . Si quisieramos por ejemplo que el último caracter fuera o un dígito (0-9) o una letra minúscula (a-z) simplemente se escribirían dentro de los corchetes un criterio detras de otro. //pat seguido de un número o letra minúscula var patron = /pat[0-9a-z]/. var patron = new RegExp(“pato”). que sirve para indicar rangos. Por ejemplo si escribimos en la línea de comandos de windows dir *. var patron = /pat[0-9]/. todos los archivos .exe. Pero en este caso lo que le pasamos al constructor es una cadena.exe. Este es el patrón mas sencillo. Todos los patrones se escriben entre barras invertidas. //ahora también puede estar seguido de una A mayúscula var patron2 = /pat[0-9a-zA]/. pero es mas conveniente utilizar una sintaxis especialmente pensado para ello. pat2. que indican opción. …. es decir. así como las cadenas de texto se escriben entrecomilladas. var patron = /pato/. var patron = /pat[aeo]/. En Javascript las expresiones regulares se basan en las de Perl. ¿Y si quisieramos comprobar si la cadena es pat0. la e o la letra o. Para complicar un poco mas las cosas supongamos que queremos comprobar si la cadena que nos pasan es pato. al comparar con /[aeo]/ devolvería cierto en caso de que la cadena fuera la letra a.Las expresiones regulares son una forma de describir cadenas de caracteres que sirven para comparaciones y reemplazos complejos. Para crear una expresión regular podemos usar el constructor del objeto RegExp. Veamos un ejemplo. La acción de comparar la cadena de texto con el patrón que le hemos dado (la expresión regular) se denomina reconocimiento de patrones (pattern matching). de forma que son muy muy parecidas y se representan por el objeto RegExp (de REGular EXPresion). Entonces usariamos los corchetes. pat1. es decir. pat9? En lugar de tener que encerra los 10 dígitos dentro de los corchetes podemos utilizar el guión. La otra forma de crear el objeto RegExp es como deciamos utilizando su constructor. por lo tanto en lugar de usar / lo entrecomillamos.exe. En una comparación con una cadena devolvería true en el caso de la cadena con la que se compara sea “pato”.

Otros elementos a tener en cuenta son: . Si nos fijamos vemos que esto es obvio. {3. Otro elemento interesante en las expresiones regulares es la especificación de las posiciones en que se tiene que encontrar la cadena.write(“patoa”. ? y {}. ? indica opcionalidad. esa es la utilidad de ^ y $. Otra función útil que merece la pena comentar es cadena. Por ejemplo {3} indicaría que tiene que aparecer exactamente 3 veces. + indica que lo que tiene a su izquierda puede estar 1 o mas veces.search(patron)). es decir.write(“patopata”. document. que sustituye en la cadena sobre la que se llamó las ocurrencias del patrón por la cadena especificada Si ejecutamos el programa anterior la salida por pantalla será -100-1. “patao”. /pat[ao]{2}/ incluye las cadenas “pataa”.8} indicaría que tiene que aparecer de 3 a 8 veces y {3. con * pat también se aceptaría).replace(patron. El patrón que definimos primero. document. *. pero siempre minúsculas o números? Entonces recurrimos a +. Hay que tener cuidado porque {} exige que se repite lo último. que indican que el elemento sobre el que actúa debe ir al principio de la cadena o al final de esta. * indica que puede estar 0 o mas veces (en el caso de + el número o la minúscula tendría que aparecer al menos una vez. patron = /(pat[ao]){2}/. //buscamos “oo” y que se encuentre al principio de la cadena en la que esté var patron = /^aa/. document. document. no pat[ao]. es decir. la primera y última llamada a search devuelven no encontrado y la segunda y las otras dos encuentran la cadena en la posición 0. //buscamos uu al final de la cadena patron = /uu$/. cuando no se esté seguro de lo que va a hacer usamos ().¿Y que ocurriría si en lugar de tener solo un número o una letra minúscula quisieramos que pudieran haber varias.search(patron)).search(patron)). </script> La función search del tipo de objeto de String (asociado a las cadenas de caracteres) comprueba si la cadena representada por el patrón que le pasamos como argumento se encuentra dentro de la cadena sobre la que se llama a search.write(“patoa”. sustituto). Para ilustrar esto vamos a ver un primer ejemplo real con expresiones regulares: <script> var patron = /pat[ao]{2}/. En el caso de que así sea devuelve la posición (por ejemplo para la cadena pato con el patron /p/ devolvería 0.write(“patopata”.search(patron)). 1 si el patrón es a. “patoo” y “patoa”.…) y -1 si no se encuentra. 2 si es t.} tres veces o mas (las que sean). lo que tenemos a la izquierda puede o no aparecer (puede aparecer 0 o 1 veces) y por último {} sirve para indicar exactamente el número de veces o que puede aparecer o un rango. Sin embargo cuando redefinimos el valor del patron utilizamos los paréntesis de forma que {2} se aplique sobre pat[ao]. ya que lo que indica {2} que debe repetirse dos veces es [ao].

\w Cualquier caracter alfanumérico. Equivalente a [a-zA-Z0-9_]. Equivale a [0-9] \D cualquier caracter que no sea un dígito.      \d un dígito. \W cualquier caracter no alfanumérico \s espacio \t tabulador .