javascript-como-usar-regex

Expresiones regulares (RegEx) en JavaScript

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