javascript-como-usar-regex

Expresiones regulares (RegEx) en JavaScript

  • 3 min

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"]