Constructor RegExp()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

El constructor RegExp crea un objeto de expresión regular para hacer coincidir el texto con un patrón.

Para ver la introducción a las expresiones regulares, lee el capítulo sobre expresiones regulares en la Guía de JavaScript.

Pruébalo

La fuente de este ejemplo interactivo se almacena en un repositorio de GitHub. Si deseas contribuir al proyecto de ejemplos interactivos, clona https://github.com/mdn/interactive-examples y envíanos una solicitud de extracción.

Sintaxis

Son posibles las notaciones literal, constructor y de fábrica:

/patrón/banderas
new RegExp(patrón[, banderas])
RegExp(patrón[, banderas])

Parámetros

patrón

El texto de la expresión regular.

A partir de ES5, también puede ser otro objeto o RegExp literal (solo para las dos notaciones del constructor RegExp). Los patrones pueden incluir caracteres especiales para que coincidan con un rango de valores más amplio que el de una cadena literal.

banderas

Si se especifica, banderas es una cadena que contiene las banderas para agregar.

Alternativamente, si se proporciona un objeto para el patrón, la cadena banderas reemplazará cualquiera de las banderas de ese objeto (y lastIndex se restablecerá a 0) (a partir de ES2015).

Si no se especifica banderas y se proporciona un objeto de expresiones regulares, las banderas de ese objeto (y el valor de lastIndex) se copiarán.

banderas puede contener cualquier combinación de los siguientes caracteres:

g (coincidencia global)

Encuentra todas las coincidencias en lugar de detenerse después de la primera.

i (ignorar mayúsculas y minúsculas)

Si el indicador u también está habilitado, utiliza el plegado de mayúsculas y minúsculas Unicode.

m (multilínea)

Trata los caracteres iniciales y finales (^ y $) como si estuvieran trabajando en varias líneas. En otras palabras, hace coincidir el principio o el final de cada línea (delimitada por \n o \r), no solo al principio o final de toda la cadena de entrada.

sdotAll» o punto para todo)

Permite que el punto (. coincida con nuevas líneas o no.

u (unicode)

Trata el patrón como una secuencia de puntos de código Unicode. (Consulta también Cadenas binarias).

y (sticky)

Coincide solo con el índice indicado por la propiedad lastIndex de esta expresión regular en la cadena destino. No intenta coincidir con índices posteriores.

Ejemplos

Notación literal y constructor

Hay dos formas de crear un objeto RegExp: una notación literal y un constructor.

  • Los parámetros de la notación literal se encierran entre barras y no utilizan comillas.
  • Los parámetros de la función constructora no se encierran entre barras, pero utilizan comillas.

Las siguientes tres expresiones crean la misma expresión regular:

js
/ab+c/i;
new RegExp(/ab+c/, "i"); // notación literal
new RegExp("ab+c", "i"); // constructor

La notación literal da como resultado la compilación de la expresión regular cuando se evalúa la expresión. Utiliza la notación literal cuando la expresión regular permanecerá constante. Por ejemplo, si usas notación literal para construir una expresión regular usada en un bucle, la expresión regular no se volverá a compilar en cada iteración.

El constructor del objeto de expresión regular, por ejemplo, new RegExp('ab+c'), da como resultado la compilación en tiempo de ejecución de la expresión regular. Usa la función constructora cuando sepas que el patrón de la expresión regular cambiará, o no conoces el patrón y lo obtienes de otra fuente, como la entrada del usuario.

Especificaciones

Specification
ECMAScript Language Specification
# sec-regexp-constructor

Compatibilidad con navegadores

BCD tables only load in the browser

Ve también