PaqueteNivel superior
Clasepublic dynamic class RegExp
HerenciaRegExp Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La clase RegExp le permite trabajar con expresiones normales, que son patrones que puede utilizar para realizar búsquedas y reemplazar texto en las cadenas.

Puede crear un nuevo objeto RegExp utilizando el constructor new RegExp() o asignando un literal RegExp a una variable:

 var pattern1:RegExp = new RegExp("test-\\d", "i");
     var pattern2:RegExp = /test-\d/i;
     

Para más información, consulte "Utilización de expresiones normales" en Programación con ActionScript 3.0.

Ver los ejemplos

Véase también

String.match()
String.replace()
String.search()
Sintaxis de las expresiones regulares


Propiedades públicas
 PropiedadDefinido por
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
  dotall : Boolean
[read-only] Indica si el carácter de punto (.) del patrón de una expresión normal coincide con caracteres de nueva línea.
RegExp
  extended : Boolean
[read-only] Especifica si debe utilizarse el modo ampliado para la expresión normal.
RegExp
  global : Boolean
[read-only] Especifica si debe utilizarse la coincidencia global para la expresión normal.
RegExp
  ignoreCase : Boolean
[read-only] Especifica si la expresión normal no distingue entre mayúsculas y minúsculas.
RegExp
  lastIndex : Number
Especifica la posición de índice de la cadena en la que debe comenzar la siguiente búsqueda.
RegExp
  multiline : Boolean
[read-only] Especifica si está definido el indicador m (multiline).
RegExp
 Inheritedprototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
Object
  source : String
[read-only] Especifica la parte del patrón de la expresión normal.
RegExp
Métodos públicos
 MétodoDefinido por
  
RegExp(re:String, flags:String)
Le permite construir una expresión normal a partir de dos cadenas.
RegExp
  
Realiza una búsqueda de la expresión normal en la cadena str en cuestión.
RegExp
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
  
Comprueba la coincidencia de la expresión normal con la cadena str en cuestión.
RegExp
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
Información sobre propiedades
dotallpropiedad
dotall:Boolean  [read-only]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Indica si el carácter de punto (.) del patrón de una expresión normal coincide con caracteres de nueva línea. Utilice el indicador s al construir una expresión normal para definir dotall = true.


Implementación
    public function get dotall():Boolean

Véase también


Ejemplo

En el ejemplo siguiente, se ilustra el efecto que tiene el indicador s (dotall) en una expresión normal:
var str:String = "<p>Hello\n"
        + "again</p>"
        + "<p>Hello</p>";

var pattern:RegExp = /<p>.*?<\/p>/;
trace(pattern.dotall) // false
trace(pattern.exec(str)); // <p>Hello</p>

pattern = /<p>.*?<\/p>/s;
trace(pattern.dotall) // true
trace(pattern.exec(str));
extendedpropiedad 
extended:Boolean  [read-only]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica si debe utilizarse el modo ampliado para la expresión normal. Cuando un objeto RegExp está en modo ampliado, no se tienen en cuenta los caracteres de espacio en blanco de la cadena constructora. Esto permite que los constructores resulten más legibles.

Utilice el indicador x al construir una expresión normal para definir extended = true.


Implementación
    public function get extended():Boolean

Véase también


Ejemplo

El siguiente ejemplo ilustra distintas formas de construir la misma expresión normal. En cada una de ellas, la expresión normal debe coincidir con los siguientes patrones de números de teléfono: xxx-xxx-xxxx, (xxx) xxx-xxxx o (xxx)xxx-xxxx. La segunda expresión normal utiliza el indicador x, por lo que se omiten los espacios en blanco de la cadena.
var rePhonePattern1:RegExp = /\d{3}-\d{3}-\d{4}|\(\d{3}\)\s?\d{3}-\d{4}/;
var str:String = "The phone number is (415)555-1212.";

trace(rePhonePattern1.extended) // false
trace(rePhonePattern1.exec(str)); // (415)555-1212

var rePhonePattern2:RegExp = / \d{3}-\d{3}-\d{4}  |   \( \d{3} \) \ ? \d{3}-\d{4}  /x;
trace(rePhonePattern2.extended) // true
trace(rePhonePattern2.exec(str)); // (415)555-1212
globalpropiedad 
global:Boolean  [read-only]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica si debe utilizarse la coincidencia global para la expresión normal. Si global == true, la propiedad lastIndex se define después de que se encuentre una coincidencia. La próxima vez que se solicite una coincidencia, el motor de expresión normal comenzará desde la posición lastIndex de la cadena. Utilice el indicador g al construir una expresión normal para definir global con el valor true.


Implementación
    public function get global():Boolean

Véase también


Ejemplo

En el ejemplo siguiente, se ilustra el efecto que tiene el indicador g (global) en el método exec():
var pattern:RegExp = /foo\d/;
var str:String = "foo1 foo2";
trace(pattern.global); // false
trace(pattern.exec(str)); // foo1
trace(pattern.lastIndex); // 0
trace(pattern.exec(str)); // foo1

pattern = /foo\d/g;
trace(pattern.global); // true
trace(pattern.exec(str)); // foo1
trace(pattern.lastIndex); // 4
trace(pattern.exec(str)); // foo2
ignoreCasepropiedad 
ignoreCase:Boolean  [read-only]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica si la expresión normal no distingue entre mayúsculas y minúsculas. Utilice el indicador i al construir una expresión normal para definir ignoreCase = true.


Implementación
    public function get ignoreCase():Boolean

Véase también


Ejemplo

En el ejemplo siguiente, se ilustra el efecto que tiene que definir el indicador i (ignoreCase):
var pattern:RegExp = /bob/;
var str:String = "Bob bob";
trace(pattern.ignoreCase); // false
trace(pattern.exec(str)); // bob

pattern = /bob/i;
trace(pattern.ignoreCase); // true
trace(pattern.exec(str)); // Bob
lastIndexpropiedad 
lastIndex:Number  [read-write]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica la posición de índice de la cadena en la que debe comenzar la siguiente búsqueda. Esta propiedad afecta a los métodos exec() y test() de la clase RegExp. Sin embargo, los métodos match(), replace() y search() de la clase String no tienen en cuenta la propiedad lastIndex y comienzan todas las búsquedas desde el principio de la cadena.

Si el método exec() o test() encuentran una coincidencia y el indicador g (global) está definido como true para la expresión normal, el método establece automáticamente la propiedad lastIndex con la posición de índice del carácter situado después del último carácter de la subcadena coincidente en la última coincidencia. Si el indicador g (global) se define como false, el método no define la propiedad lastIndex.

Puede definir la propiedad lastIndex para ajustar la posición de inicio en la cadena para la comparación con la expresión normal.


Implementación
    public function get lastIndex():Number
    public function set lastIndex(value:Number):void

Véase también


Ejemplo

En el ejemplo siguiente, se ilustra el efecto que tiene que definir la propiedad lastIndex y se muestra cómo se actualiza tras una llamada al método exec() en una expresión normal en la que el indicador g (global) está definido:
var pattern:RegExp = /\w\d/g;
var str:String = "a1 b2 c3 d4";
pattern.lastIndex = 2;
trace(pattern.exec(str)); // b2
trace(pattern.lastIndex); // 5
trace(pattern.exec(str)); // c3
trace(pattern.lastIndex); // 8
trace(pattern.exec(str)); // d4
trace(pattern.lastIndex); // 11
trace(pattern.exec(str)); // null
multilinepropiedad 
multiline:Boolean  [read-only]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica si está definido el indicador m (multiline). Si está definido, el símbolo de intercalación (^) y el símbolo del dólar ($) de una expresión normal coinciden antes y después de las nuevas líneas. Utilice el indicador m al construir una expresión normal para definir multiline = true.


Implementación
    public function get multiline():Boolean

Véase también


Ejemplo

En el ejemplo siguiente, se ilustra el efecto que tiene que definir el indicador m (multiline):
var pattern:RegExp = /^bob/;
var str:String = "foo\n"
                + "bob";
trace(pattern.multiline); // false
trace(pattern.exec(str)); // null

pattern = /^bob/m;
trace(pattern.multiline); // true
trace(pattern.exec(str)); // bob
sourcepropiedad 
source:String  [read-only]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica la parte del patrón de la expresión normal.


Implementación
    public function get source():String

Véase también


Ejemplo

El siguiente código da como resultado el parámetro source de dos expresiones normales:
var re1:RegExp = /aabb/gi;
trace(re1.source); // aabb

var re2:RegExp = new RegExp("x+y*", "i");
trace(re2.source); // x+y*
Información sobre constructores
RegExp()constructor
public function RegExp(re:String, flags:String)

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Le permite construir una expresión normal a partir de dos cadenas. Una cadena define el patrón de la expresión normal, mientras que la otra define los indicadores utilizados en la expresión normal.

Parámetros
re:String — El patrón de la expresión normal (también se conoce como la cadena constructora). Esta es la parte principal de la expresión normal (la parte que va entre los caracteres "/").

Notas:

  • No incluya los caracteres "/" inicial y final; utilícelos sólo cuando defina un literal de expresión regular sin emplear el constructor. Por ejemplo, las dos expresiones normales siguientes son equivalentes:
     var re1:RegExp = new RegExp("bob", "i");
            var re2:RegExp = /bob/i;
  • En una expresión normal definida con el método constructor RegExp(), para utilizar una metasecuencia que comience con el carácter de barra diagonal inversa (\) como, por ejemplo, \d (que coincide con cualquier dígito), escriba el carácter de barra diagonal invertida dos veces. Por ejemplo, las dos expresiones normales siguientes son equivalentes:
     var re1:RegExp = new RegExp("\\d+", "");
            var re2:RegExp = /\d/;

    En la primera expresión, debe escribir el carácter de barra diagonal invertida dos veces, ya que el primer parámetro del método constructor RegExp() es una cadena y en un literal de cadena debe escribir un carácter de barra diagonal invertida dos veces para que se reconozca como un solo carácter de barra diagonal invertida.

 
flags:String — Los modificadores de la expresión normal. Pueden ser los siguientes:
  • g — Al utilizar el método replace() de la clase String, especifique este modificador para reemplazar todas las coincidencias y no sólo la primera. Este modificador corresponde a la propiedad global de la instancia de RegExp.
  • i — La expresión normal se evalúa sin distinguir entre mayúsculas y minúsculas. Este modificador corresponde a la propiedad ignoreCase de la instancia de RegExp.
  • s — El carácter de punto (.) coincide con los caracteres de nueva línea. Nota Este modificador corresponde a la propiedad dotall de la instancia de RegExp.
  • m — El carácter de intercalación (^) y el símbolo de dólar ($) coinciden delante y detrás de los caracteres de nueva línea. Este modificador corresponde a la propiedad multiline de la instancia de RegExp.
  • x — Los caracteres de espacio en blanco de la cadena re no se tienen en cuenta, lo que le permite escribir constructores que resulten más legibles. Este modificador corresponde a la propiedad extended de la instancia de RegExp.

Los demás caracteres de la cadena flags no se tienen en cuenta.

Véase también

Información sobre métodos
exec()método
AS3 function exec(str:String):Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Realiza una búsqueda de la expresión normal en la cadena str en cuestión.

Si el indicador g (global) no está definido para la expresión normal, la búsqueda comienza al principio de la cadena (en la posición de índice 0); la búsqueda omite la propiedad lastIndex de la expresión normal.

Si el indicador g (global) está definido para la expresión normal, la búsqueda comienza en la posición de índice especificada por la propiedad lastIndex de la expresión normal. Si la búsqueda coincide con una subcadena, la propiedad lastIndex cambia para que se corresponda con la posición del final de la coincidencia.

Parámetros

str:String — La cadena que se va a buscar.

Valor devuelto
Object — Si no hay ninguna coincidencia, el valor es null; en caso contrario, el valor es un objeto con las siguientes propiedades:
  • Una matriz, en la que el elemento 0 contiene la subcadena coincidente completa, y otros elementos de la matriz (de 1 a n) contienen subcadenas que coinciden con los grupos entre paréntesis de la expresión normal
  • index — La posición del carácter de la subcadena coincidente dentro de la cadena
  • input — La cadena (str)

Véase también


Ejemplo
Si el indicador g (global) no está definido para la expresión normal, puede utilizar exec() para buscar la primera coincidencia en la cadena:
         var myPattern:RegExp = /(\w*)sh(\w*)/ig;
         var str:String = "She sells seashells by the seashore";
         var result:Object = myPattern.exec(str);
         trace(result);
         

El objeto result se establece de la siguiente forma:

  • result[0] se define en "She" (la coincidencia completa).
  • result[1] se establece como una cadena vacía (el primer grupo entre paréntesis coincidente).
  • result[2] se establece como "e" (el segundo grupo entre paréntesis coincidente).
  • result.index se define con el valor 0.
  • result.input se define como la cadena de entrada: "She sells seashells by the seashore".

En el ejemplo siguiente, el indicador g (global) está definido en la expresión normal, de manera que puede utilizar exec() repetidamente para localizar varias coincidencias:

         var myPattern:RegExp = /(\w*)sh(\w*)/ig;
         var str:String = "She sells seashells by the seashore";
         var result:Object = myPattern.exec(str);
                  while (result != null) {
             trace( result.index, "\t", result);
             result = myPattern.exec(str);
         }
         

Este código da como resultado la salida siguiente:

 0 She,,e 10 seashells,sea,ells 27 seashore,sea,ore 
test()método 
AS3 function test(str:String):Boolean

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Comprueba la coincidencia de la expresión normal con la cadena str en cuestión.

Si el indicador g (global) no está definido para la expersión normal, la búsqueda comienza al principio de la cadena (en la posición de índice 0); la búsqueda omite la propiedad lastIndex de la expersión normal.

Si el indicador g (global) está definido para la expresión normal, la búsqueda comienza en la posición de índice especificada por la propiedad lastIndex de la expresión normal. Si la búsqueda coincide con una subcadena, la propiedad lastIndex cambia para que se corresponda con la posición del final de la coincidencia.

Parámetros

str:String — La cadena que se va a comprobar.

Valor devuelto
Boolean — Si hay una coincidencia, devuelve el valor true; de lo contrario, devuelve false.

Véase también


Ejemplo

En el ejemplo siguiente, se ilustra el uso del método test() en una expresión normal en la que se define el indicador g (global):
var re1:RegExp = /\w/g;
var str:String = "a b c";
trace(re1.lastIndex); // 0
trace(re1.test(str)); // true
trace(re1.lastIndex); // 1
trace(re1.test(str)); // true
trace(re1.lastIndex); // 3
trace(re1.test(str)); // true
trace(re1.lastIndex); // 5
trace(re1.test(str)); // false
Ejemplos Cómo utilizar los ejemplos
RegExpExample.as

En el ejemplo siguiente, se ilustra cómo utilizar expresiones regulares normales para analizar cadenas y devolver una nueva cadena o un nuevo valor Boolean en función de la cadena transferida. El método informalizeGreeting() simplemente sustituye la palabra Hello por Hi, sin tener en cuenta las mayúsculas ni las minúsculas. También elimina el apellido del nombre en la cadena (siempre y cuando el nombre coincida con el patrón especificado). En los métodos validateEmail() y validatePhoneNumber(), se comprueba la cadena transferida para ver si su patrón coincide con el de alguna dirección de correo electrónico válida o con el de un número de teléfono concreto. Los métodos devuelven valores Boolean en función de los resultados.
package {
    import flash.display.Sprite;

    public class RegExpExample extends Sprite {
        public function RegExpExample() {
            var formalGreeting:String = "Hello, John Smith.";
            trace(informalizeGreeting(formalGreeting));    // Hi, John.

            var validEmail:String = "name@domain.com";
            trace(validateEmail(validEmail));        // true

            var invalidEmail:String = "foo";
            trace(validateEmail(invalidEmail));  // false

            var validPhoneNumber:String = "415-555-1212";
            trace(validatePhoneNumber(validPhoneNumber));    // true

            var invalidPhoneNumber:String = "312-867-530999";
            trace(validatePhoneNumber(invalidPhoneNumber));  // false
        }
        private function informalizeGreeting(str:String):String {
            var pattern:RegExp = new RegExp("hello, (\\w+) \\w+", "i");
            return str.replace(pattern, "Hi, $1");
        }
        private function validateEmail(str:String):Boolean {
            var pattern:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/;
            var result:Object = pattern.exec(str);
            if(result == null) {
                return false;
            }
            return true;
        }
        private function validatePhoneNumber(str:String):Boolean {
            var pattern:RegExp = /^\d{3}-\d{3}-\d{4}$/;
            var result:Object = pattern.exec(str);
            if(result == null) {
                return false;
            }
            return true;
        }
    }
}




 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/RegExp.html