Expresiones Regulares
Las expresiones regulares nos permiten buscar patrones en un string, por tanto buscar el trozo que coincida o cumpla dicha expresión. En JavaScript, podemos crear una expresión regular instanciando un objeto de la clase RegExp o escribiendo directamente la expresión entre dos barras '/'.
Una expresión también puede tener uno o más modificadores como 'g' → Búsqueda global (Busca todas las coincidencias y no sólo la primera), 'i' → Case-insensitive (No distingue entre mayúsculas y minúsculas), o 'm' → Búsqueda en más de una línea (Sólo tiene sentido en cadenas con saltos de línea). En Javascript puedes crear un objeto de expresión regular con estos modificadores de dos formas. Ejemplo:
Métodos para trabajar con expresiones regulares
Comprobar si una cadena cumple un patrón
El método test() recibe una cadena e intenta de encontrar una la coincidencia con la expresión regular. Si el modificador global 'g' se especifica, cada vez que se llame al método se ejecutará desde la posición en la que se encontró la última coincidencia, por tanto podemos saber cuántas coincidencias se encuentran. Debemos recordar que si usamos el modificador 'i' no diferencia entre mayúsculas y minúsculas.
Buscar coincidencias en una cadena
Si queremos más detalles sobre las veces que se repite un patrón dentro de una cadena, podríamos usar el método exec(). Este método devuelve un objeto con los detalles cuando encuentra alguna coincidencia. Estos detalles incluyen el índice en el que empieza la coincidencia y también el string entero.
Una forma de recorrer dichas coincidencias sería esta:
De forma similar, hay métodos de la clase String que podemos usar, estos admiten expresiones regulares como parámetros (vamos, a la inversa). Estos métodos son match (Funciona de forma similar a exec) y replace.
El método match devuelve un array con todas las coincidencias encontradas en la cadena si ponemos el modificador global → g, si no ponemos el modificador global, se comporta igual que exec().
Sustitución de patrones
El método replace devuelve una nueva cadena con las coincidencias de la expresión regular reemplazadas por la cadena que le pasamos como segundo parámetro (si el modificador global no se especifica, sólo se modifica la primera coincidencia). Podemos enviar una función anónima que procese cada coincidencia encontrada y nos devuelva la cadena con los reemplazos correspondientes.