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 incluircaracteres 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 (ylastIndex
se restablecerá a0
) (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 delastIndex
) 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. s
(«dotAll» 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:
/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
- El capítulo de
Expresiones regulares
en laGuía de JavaScript
String.prototype.match()
String.prototype.replace()