Juanma Santoyo

En ocasiones me llaman friki

El objeto RegExp de JavaScript. Las dos cosas que van a cubrir la mayoría de tus necesidades.

| No hay comentarios

Las expresiones regulares tienen muchos usos, pero la mayoría de las veces sólo vas a hacer dos cosas:

  1. Comprobar si una cadena cumple el patrón
  2. Extraer subcadenas de la cadena de origen

Voy a ilustrar en un par de ejemplos cómo se usa el objeto RegExp de JavaScript, el cual nos permite usar expresiones regulares.

Crear un objeto RegExp

Veamos primero cómo se construye un objeto RegExp. Hay dos formas:

Forma tradicional

El RegExp se puede crear mediante un constructor, como cualquier otro objeto. Los argumentos del constructor son dos strings: el patrón y los modificadores. Un ejemplo:

var expression = new RegExp('^.* prueba$', 'i');

El modificador usado es el case insensitive.

La gran ventaja de este sistema es que el patrón se crea con un string, lo cual permite crear el patrón de forma dinámica.

Forma simplificada

Otra forma de crear un objeto RegExp es mediante una estructura del tipo: /patrón/modificadores. Por ejemplo:

var expression = /^.* prueba$/i;

Comprobar si una cadena cumple el patrón

La mayoría de las veces sólo queremos saber si una cadena cumple un patrón. Para ello, contamos con el método Test de RegExp, que devolerá true o false según se cumpla el patrón o no:

var expression = /^.* prueba$/i;
var str = 'Esto es una prueba';
expression.test(str); // true

Extraer subcadenas de la cadena de origen

Con las expresiones regulares también es posible extraer trozos de la cadena original. Para ello, se deben definir grupos en el patrón mediante el uso de paréntesis.

El método exec de RegExp nos retornará un array con todos los valores extraídos, y es nuestra responsabilidad saber qué índice del array ocupará el valor que buscamos. Hay que tener en cuenta que el índice 0 siempre será la cadena original.

var expression = /^.* (.*)$/i;
var str = 'Esto es una prueba';
expression.exec(str); // ['Esto es una prueba', 'prueba']

Una mención especial al método Replace

Con lo anterior ya he cubierto los usos más interesantes de RegExp, pero el método Replace del objeto String merece una mención especial, ya que se vuelve mucho más potente si lo usamos con objetos RegExp. Podéis consultarlo aquí: Metodo Replace.

Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

Deja un comentario

Los campos obligatorios están marcados con *.