Creación de una instancia de expresión regular

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

Hay dos maneras de crear una instancia de expresión regular. Una consiste en utilizar caracteres de barra diagonal ( / ) para delimitar la expresión regular; la otra utiliza el constructor new . Por ejemplo, las dos expresiones regulares siguientes son equivalentes:

var pattern1:RegExp = /bob/i; 
var pattern2:RegExp = new RegExp("bob", "i");

Las barras diagonales delimitan un literal de expresión regular de la misma manera que las comillas delimitan un literal de cadena. La parte de la expresión regular delimitada por las barras diagonales define el patrón. La expresión regular también puede incluir indicadores a continuación de la última barra de delimitación. Se considera que estos indicadores forman parte de la expresión regular, pero son independientes del patrón.

Al utilizar el constructor new se pueden utilizar dos cadenas para definir la expresión regular. La primera cadena define el patrón y la segunda cadena define los indicadores, como en el siguiente ejemplo:

var pattern2:RegExp = new RegExp("bob", "i");

Si se incluye una barra diagonal en una expresión regular definida con los delimitadores de barra diagonal, hay que escribir inmediatamente antes de dicha barra diagonal el carácter de escape de barra diagonal inversa ( \ ). Por ejemplo, la siguiente expresión regular detecta el patrón 1/2 :

var pattern:RegExp = /1\/2/;

Para incluir comillas en una expresión regular definida con el constructor new , hay que añadir el carácter de escape de barra diagonal inversa ( \ ) antes de las comillas (de la misma manera que al definir un literal de cadena). Por ejemplo, las siguientes expresiones regulares detectan el patrón eat at "joe's" :

var pattern1:RegExp = new RegExp("eat at \"joe's\"", ""); 
var pattern2:RegExp = new RegExp('eat at "joe\'s"', "");

No se debe utilizar el carácter de escape barra diagonal inversa con comillas en expresiones regulares definidas con los delimitadores de barra diagonal. De forma similar, no se debe utilizar el carácter de escape con barras diagonales en expresiones regulares definidas con el constructor new . Las siguientes expresiones regulares son equivalentes y definen el patrón 1/2 "joe's" :

var pattern1:RegExp = /1\/2 "joe's"/; 
var pattern2:RegExp = new RegExp("1/2 \"joe's\"", ""); 
var pattern3:RegExp = new RegExp('1/2 "joe\'s"', '');

Además, en una expresión definida con el constructor new , para utilizar una metasecuencia que comience con el carácter barra diagonal inversa ( \ ) como, por ejemplo, \d (que coincide con cualquier dígito), debe escribirse el carácter barra diagonal inversa dos veces:

var pattern:RegExp = new RegExp("\\d+", ""); // matches one or more digits

En este caso hay que escribir el carácter barra diagonal inversa dos veces, ya que el primer parámetro del método constructor RegExp() es una cadena y en un literal de cadena hay que escribir un carácter barra diagonal inversa dos veces para que se reconozca como un solo carácter de barra diagonal inversa.

En las secciones siguientes se describe la sintaxis para definir patrones de expresiones regulares.

Para más información sobre los indicadores, consulte Indicadores y propiedades .