Una expresión regular es una sintaxis que supone un patrón de búsqueda en una cadena de caracteres.
En JavaScript, las expresiones regulares se utilizan para realizar operaciones de coincidencia y manipulación de cadenas de texto. Como por ejemplo,
- Buscar y reemplazar partes de una cadena
- Validar formatos de datos (por ejemplo, correos electrónicos, números de teléfono)
- Dividir cadenas en base a patrones específicos
Las expresiones regulares pueden parecer complicadas al principio debido a su sintaxis compacta, pero ofrecen una gran flexibilidad y potencia una vez que se dominan.
Creación de expresiones regulares en JavaScript
En JavaScript, las expresiones regulares se pueden definir de dos maneras: utilizando una literal de expresión regular o el constructor RegExp
.
Literal de Expresión Regular
La sintaxis para crear una expresión regular usando un literal es:
const regex = /expression/flags;
La opción flags
es opcional y se usa para modificar el comportamiento de la expresión regular (por ejemplo, i
para coincidencia insensible a mayúsculas).
Por ejemplo,
const regex = /abc/;
En este caso,
/abc/
es una expresión regular que coincide con la cadena “abc”.
Constructor RegExp
La sintaxis para crear una expresión regular usando el constructor RegExp
es:
const regex = new RegExp(expression, 'flags');
Por ejemplo, esto crea una expresión regular equivalente a /abc/
const regex = new RegExp('abc');
El constructor es útil cuando el patrón se define dinámicamente (por ejemplo, a partir de una variable)
Métodos para trabajar con expresiones regulares
JavaScript proporciona varios métodos útiles para trabajar con expresiones regulares a través de la propiedad RegExp
y los métodos de las cadenas de texto (String
).
RegExp.test()
El método test()
de RegExp
se utiliza para comprobar si una expresión regular coincide con una cadena.
const regex = /hola/;
console.log(regex.test('hola mundo')); // true
console.log(regex.test('adiós mundo')); // false
RegExp.exec()
El método exec()
de RegExp
busca una coincidencia en una cadena y devuelve un array con la coincidencia o null
si no hay coincidencia.
const regex = /(\d+)/;
const resultado = regex.exec('Tengo 2 manzanas');
console.log(resultado); // ["2", "2"]
String.match()
El método match()
de String
se usa para obtener las coincidencias de una expresión regular en una cadena. Devuelve un array con las coincidencias o null
si no hay coincidencia.
const texto = 'La fecha es 2024-08-14';
const regex = /\d{4}-\d{2}-\d{2}/;
const resultado = texto.match(regex);
console.log(resultado); // ["2024-08-14"]
String.replace()
El método replace()
de String
se utiliza para reemplazar partes de una cadena que coinciden con una expresión regular.
const texto = 'Mi número de teléfono es 123-456-7890';
const regex = /\d{3}-\d{3}-\d{4}/;
const nuevoTexto = texto.replace(regex, 'XXX-XXX-XXXX');
console.log(nuevoTexto); // "Mi número de teléfono es XXX-XXX-XXXX"
String.split()
El método split()
de String
se utiliza para dividir una cadena en un array utilizando una expresión regular como delimitador.
const texto = 'uno,dos,tres';
const regex = /,/;
const resultado = texto.split(regex);
console.log(resultado); // ["uno", "dos", "tres"]