Como hacer una pagina web y ganar dinero
Creada para aprender lo que mas nesesitas porque la calidad es mejor que la cantidad.
Blog

Expresiones regulares en JavaScript

Tags: expresiones, regulares, manual, remplace, buscar, regexp, javascript
publicado el 2010-07-23   leido 4624 leídas

Las expresiones regulares son una forma de describir cadenas de caracteres que sirven para comparaciones y reemplazos complejos. Por ejemplo si escribimos en la línea de comandos de windows dir *.exe, eso es una expresión regular que define todas las cadenas de caracteres que empiecen con cualquier cosa seguida de .exe, es decir, todos los archivos .exe.
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).

En Javascript las expresiones regulares se basan en las de Perl, de forma que son muy muy parecidas y se representan por el objeto RegExp (de REGular EXPresion). Para crear una expresión regular podemos usar el constructor del objeto RegExp, pero es mas conveniente utilizar una sintaxis especialmente pensado para ello.

Ejemplos de expresiones regulares en Javascript

    var patron = /pato/;
Este es el patrón mas sencillo. En una comparación con una cadena devolvería true en el caso de la cadena con la que se compara sea pato. Todos los patrones se escriben entre barras invertidas, así como las cadenas de texto se escriben entrecomilladas. La otra forma de crear el objeto RegExp es como deciamos utilizando su constructor.
    var patron = new RegExp("pato");
Pero en este caso lo que le pasamos al constructor es una cadena, por lo tanto en lugar de usar / lo entrecomillamos.

Ejemplo 2

Para complicar un poco mas las cosas supongamos que queremos comprobar si la cadena que nos pasan es pato, pata o pate. Entonces usariamos los corchetes, que indican opción, es decir, al comparar con /[aeo]/ devolvería cierto en caso de que la cadena fuera la letra a, la e o la letra o.
    var patron = /pat[aeo]/;
¿Y si quisieramos comprobar si la cadena es pat0, pat1, pat2, , pat9? En lugar de tener que encerra los 10 dígitos dentro de los corchetes podemos utilizar el guión, que sirve para indicar rangos. Por ejemplo 0-9 serían todos los números de 0 a 9 inclusive.
    var patron = /pat[0-9]/;
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]/;
    //ahora también puede estar seguido de una A mayúscula
    var patron2 = /pat[0-9a-zA]/;
¿Y que ocurriría si en lugar de tener solo un número o una letra minúscula quisieramos que pudieran haber varias, pero siempre minúsculas o números? Entonces recurrimos a +, *, ? y {}.
  • + indica que lo que tiene a su izquierda puede estar 1 o mas veces,
  • * 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, con * pat también se aceptaría).
  • ? indica opcionalidad, es decir, 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. Por ejemplo {3} indicaría que tiene que aparecer exactamente 3 veces, {3,8} indicaría que tiene que aparecer de 3 a 8 veces y {3,} tres veces o mas (las que sean).
Hay que tener cuidado porque {} exige que se repite lo último, cuando no se esté seguro de lo que va a hacer usamos (). Para ilustrar esto vamos a ver un ejemplo real con expresiones regulares:
    <script>
    var patron = /pat[ao]{2}/;
    document.write("patopata".search(patron));
    document.write("patoa".search(patron));
    patron = /(pat[ao]){2}/;
    document.write("patopata".search(patron));
    document.write("patoa".search(patron));
    </script>

Función search


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. En el caso de que así sea devuelve la posición (por ejemplo para la cadena pato con el patron /p/ devolvería 0, 1 si el patrón es a, 2 si es t,) y -1 si no se encuentra.

Si ejecutamos el programa anterior la salida por pantalla será -100-1, 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. Si nos fijamos vemos que esto es obvio. El patrón que definimos primero, /pat[ao]{2}/ incluye las cadenas pataa, patao, patoo y patoa, ya que lo que indica {2} que debe repetirse dos veces es [ao], no pat[ao]. Sin embargo cuando redefinimos el valor del patron utilizamos los paréntesis de forma que {2} se aplique sobre pat[ao].

Otra función útil que merece la pena comentar es cadena.replace(patron, sustituto), que sustituye en la cadena sobre la que se llamó las ocurrencias del patrón por la cadena especificada

Posiciones de un string ^ y $


Otro elemento interesante en las expresiones regulares es la especificación de las posiciones en que se tiene que encontrar la cadena, esa es la utilidad de ^ y $, que indican que el elemento sobre el que actúa debe ir al principio de la cadena o al final de esta.
    //buscamos"aa" y que se encuentre al principio de la cadena en la que esté
    var patron = /^aa/;
    //buscamos uu al final de la cadena
    patron = /uu$/;
Otros elementos a tener en cuenta son:
  • \d un dígito. Equivale a [0-9]
  • \D cualquier caracter que no sea un dígito.
  • \w Cualquier caracter alfanumérico. Equivalente a [a-zA-Z0-9_].
  • \W cualquier caracter no alfanumérico
  • \s espacio
  • \t tabulador

Te gust?

Programación orientada a objetos en JavaScript

Reemplazar palabra o caracteres con expreciones regulares en Javascript

 
Información
Christian Valencia publicado porPor: Ero-Fierce

Suscribete
Recibe los ultimos articulos en tu email:

Indice.
Javascript

Ultimos Artculos
Hacer SEO en el 2016 - 2017
Habilitar sonido al pulsar las teclas Bloq Mayús, Bloq Num y Bloq Des
10 trucos viejos, seo que nunca te dijeron
15 Efectos carrusel como pagina de libro animado con ejemplos
No se pudo generar una instancia de usuario de SQL Server debido a un error (.mdf
Solucion Error 26. No se encontró el servidor o éste no estaba accesible. Sql

Todos los tutoriales

Hacer una web paso a paso Php y MySQL Javascript
Posicionamiento Web SEO Cómo ganar dinero con tu web Herramientas y Programas Web
Maquetación con CSS Hosting y Dominios MySQL y Phpmyadmin
Ajax UML: Analisis y Diseño Programacion Orientada a Objetos
Java
 
Copyright © 2009 - pagina Web 2 - Todos los derechos Reservados