Uno de los primeros pasos al comenzar en JavaScript requiere conocer las expresiones regulares. En este artículo te daremos su definición, así como la manera de crearlas y evaluarlas.
¡Comencemos!
¿Qué es una expresión regular?
Una expresión regular es un patrón definido cuyo objetivo es determinar si una cadena de caracteres cumple o tiene coincidencias con dicho patrón.
A modo ilustrativo pero no limitante, este ejemplo nos muestra algunas posibilidades que tenemos para crear nuestros patrones de expresiones regulares:
// Palabra que empieza con 'a'
let regularExp = /\b[aA]\w+/g;
// \b define un límite de una palabra
// [aA] busca las letras a o A
// \w+ busca cualquier carácter alfanumérico del alfabeto latino básico, el + indica que se puede repetir varias veces
Para hacer una expresión regular puedes seguir cualquiera de las siguientes dos opciones.
¿Cómo hacer una expresión regular en JavaScript?
En JavaScript tenemos dos formas de crear una expresión regular: usando la notación literal, con un patrón acotado entre barras, o con el constructor de objeto RegExp.
1. Notación literal
La notación literal consiste en definir un patrón acotado entre barras. La sintaxis es:
let re = /patrón/banderas; // notación literal
Ejemplo de expresión regular de JavaScript por notación literal
let regularExp = /ab+c/i; // palabra que inicie con 'a', seguida de varias 'b', seguidas de una 'c'
2. Constructor de objeto RegExp
También puedes usar el constructor del objeto RegExp pasando como parámetro el patrón acotado entre comillas. La sintaxis es:
let re = new RegExp('patrón', 'banderas'); // constructor con patrón como parámetro
Ejemplo de expresión regular de JavaScript por constructor de objeto RegExp
let regularExp = new RegExp('ab+c', 'i');
¿Cómo elegir la forma de construir una expresión regular en JavaScript?
¿Cuándo usar una y cuándo usar otra? La respuesta es sencilla. Si el patrón permanece constante, entonces debemos usar la notación literal; si el patrón cambia o se obtiene de otra fuente (introducido por el usuario, de otro archivo o de una base de datos), usaremos el constructor.
¿Cómo evaluar una expresión regular en JavaScript?
Las banderas son indicadores que habilitan funciones en la definición del patrón de la expresión regular. Los más usados son:
-
g: realiza una búsqueda global en toda la cadena a evaluar.
-
i: no hace distinción entre mayúsculas y minúsculas al evaluar la cadena.
Podemos usar el método test() o exec() del objeto RegExp de JavaScript para evaluar si una cadena cumple con un patrón únicamente enviando dicha cadena como parámetro de cada función.
En el siguiente ejemplo vemos que test() devuelve true o false, mientras que exec() devuelve un arreglo con las coincidencias encontradas en la cadena original o null si no hay coincidencias:
let cadena = "hola, mundo!";let resultado = /^hola/.test(cadena);console.log(resultado); // true// Busca "lugar" seguido de "Mancha", ignorando los caracteres intermedios// No distingue mayúsculas y minúsculas, y hace una búsqueda generallet regularExp = /lugar.+?mancha/ig;resultado = regularExp .exec('En un lugar de La Mancha...');console.table(resultado); // Arreglo con coincidencias
Ahora conoces qué es una expresión regular, así como las formas de hacerla y de evaluarla. Aprende más sobre este lenguaje de programación con el post ¿Qué es el método split en JavaScript?