JavaScript Expresiones regulares


Una expresión regular (en inglés: Regular Expression, a menudo abreviada en código como regex, regexp o RE) utiliza una sola cadena para describir y hacer coincidir una serie de patrones de búsqueda de cadenas que se ajustan a una determinada regla sintáctica.

El patrón de búsqueda se puede usar para la búsqueda y el reemplazo de texto.


¿Qué es una expresión regular?

Una expresión regular es un patrón de búsqueda formado por una secuencia de caracteres.

Cuando buscas datos en un texto, puedes usar el patrón de búsqueda para describir lo que quieres consultar.

Una expresión regular puede ser un carácter simple o un patrón más complejo.

Las expresiones regulares se pueden usar en todas las operaciones de búsqueda y reemplazo de texto.

Puedes acceder a más contenido sobre expresiones regulares en:Expresiones regulares - Tutorial.

Sintaxis

/cuerpo de la expresión regular/modificador (opcional)

Donde los modificadores son opcionales.


Ejemplo:

var patt = /ejemplo/i

Análisis del ejemplo:

/ejemplo/iEs una expresión regular.

ejemploes uncuerpo de la expresión regular(para la búsqueda).

ies unmodificador(para buscar sin distinguir entre mayúsculas y minúsculas).


Usar métodos de cadenas

En JavaScript, las expresiones regulares se usan normalmente con dos métodos de cadena: search() y replace().

search() El método se utiliza para buscar la subcadena especificada en una cadena, o la subcadena que coincida con una expresión regular, y devuelve la posición inicial de la subcadena.

replace() El método se utiliza para reemplazar unas cadenas por otras en una cadena, o reemplazar una subcadena que coincida con una expresión regular.


El método search() con una expresión regular

Ejemplo

Buscar la cadena "Ejemplo" usando una expresión regular, sin distinguir entre mayúsculas y minúsculas:

var str = "Visit Ejemplo!"; var n = str.search(/Ejemplo/i);

El resultado es:

6

Pruébalo »


El método search() con una cadena

El método search() puede usar una cadena como argumento. El argumento de cadena se convierte en una expresión regular:

Ejemplo

Buscar la subcadena "Ejemplo" en la cadena:

var str = "Visit Ejemplo!"; var n = str.search("Ejemplo");

Pruébalo »


El método replace() con una expresión regular

Ejemplo

Usando una expresión regular sin distinguir entre mayúsculas y minúsculas, reemplaza Microsoft por Ejemplo en la cadena:

var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"Ejemplo");

El resultado es:

Visit Ejemplo!

Pruébalo »

El método replace() con una cadena

El método replace() tomará una cadena como argumento:

var str = document.getElementById("demo").innerHTML; var txt = str.replace("Microsoft","Ejemplo");

Pruébalo »


¿Lo has notado?


Note Los argumentos de expresiones regulares se pueden usar en los métodos anteriores (en lugar de argumentos de cadena).
Las expresiones regulares hacen que la función de búsqueda sea más potente (como en el ejemplo de no distinguir entre mayúsculas y minúsculas).


Modificadores de expresiones regulares

ModificadorPuede no distinguir entre mayúsculas y minúsculas en una búsqueda global:

Modificador Descripción
i Realiza una coincidencia que no distingue entre mayúsculas y minúsculas.
g Realiza una coincidencia global (encuentra todas las coincidencias en lugar de detenerse después de la primera).
m Realiza una coincidencia multilínea.


Patrones de expresiones regulares

Los corchetes se utilizan para buscar caracteres dentro de un rango:

Expresión Descripción
[abc] Busca cualquier carácter entre corchetes.
[0-9] Busca cualquier dígito del 0 al 9.
(x|y) Busca cualquier opción separada por |.

Los metacaracteres son caracteres que tienen un significado especial:

Metacaracter Descripción
\d Busca un dígito.
\s Busca un carácter de espacio en blanco.
\b Coincide con un límite de palabra.
\uxxxx Busca un carácter Unicode especificado por el número hexadecimal xxxx.

Cuantificadores:

Cuantificador Descripción
n+ Coincide con cualquier cadena que contenga al menos unnde la cadena.
n* Coincide con cualquier cadena que contenga cero o másnde la cadena.
n? Coincide con cualquier cadena que contenga cero o unnde la cadena.


Usar el objeto RegExp

En JavaScript, el objeto RegExp es un objeto de expresión regular con propiedades y métodos predefinidos.


Usar test()

El método test() es un método de expresión regular.

El método test() se utiliza para comprobar si una cadena coincide con un patrón. Si la cadena contiene texto que coincide, devuelve true; de lo contrario, devuelve false.

El siguiente ejemplo se utiliza para buscar el carácter "e" en una cadena:

Ejemplo

var patt = /e/;
patt.test("The best things in life are free!");

La cadena contiene "e", por lo que la salida de este ejemplo es:

true

Pruébalo »

No es necesario crear una variable para la expresión regular; las dos líneas de código anteriores se pueden combinar en una sola línea:

/e/.test("The best things in life are free!")


Usar exec()

El método exec() es un método de expresión regular.

El método exec() se utiliza para buscar una coincidencia de la expresión regular en una cadena.

Esta función devuelve un array que contiene los resultados de la coincidencia. Si no se encuentra ninguna coincidencia, el valor devuelto es null.

El siguiente ejemplo se utiliza para buscar la letra "e" en una cadena:

Ejemplo 1

/e/.exec("The best things in life are free!");

La cadena contiene "e", por lo que la salida de este ejemplo es:

e

Pruébalo »

Más ejemplos

  • JS: comprobar si la cadena de entrada está compuesta por números, letras y guiones bajos

  • JS: comprobar si la cadena de entrada está compuesta completamente por letras

  • JS: comprobar si la cadena de entrada está compuesta completamente por números


Manual de referencia completo de RegExp

Para consultar el manual de referencia completo del objeto RegExp, consulta nuestroManual de referencia de RegExp de JavaScript。

Este manual de referencia incluye todos los métodos y propiedades del objeto RegExp.

Otras extensiones