Constructor RegExp()

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.

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:

/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

Especificación
ECMAScript (ECMA-262)
La definición de 'RegExp constructor' en esta especificación.

Compatibilidad del navegador

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung InternetNode.js
RegExp() constructorChrome Soporte completo 1Edge Soporte completo 12Firefox Soporte completo 1IE Soporte completo 4Opera Soporte completo 5Safari Soporte completo 1WebView Android Soporte completo 1Chrome Android Soporte completo 18Firefox Android Soporte completo 4Opera Android Soporte completo 10.1Safari iOS Soporte completo 1Samsung Internet Android Soporte completo 1.0nodejs Soporte completo Si

Leyenda

Soporte completo  
Soporte completo

Ve también