Objeto Regular Expession

JavaScript usa este objeto para trabajar con patrones de expresiones regulares, estos patrones se crean como cualquier otro objeto mediante su inicialización directa o bien mediante el constructor new RegExp(), como podemos ver en el ejemplo:

Ambas formas conducen al mismo patrón, en este ejemplo define palabras que comienzan con una vocal. El patrón puede llevar modificadores o flags para matizar la forma de buscar, en el ejemplo se usan dos: g e i. Estos modificadores tienen los siguientes sginficados:

Estos patrones poseen en total tres métodos exec(), test(), compile() además de los métodos ya citados del objeto String que también usan patrones como son: match(), replace(), search() y split(). La única propiedad que funciona en estos objetos es la source que refleja el contenido del patrón. En el patrón pueden aparecer caracteres o grupos de caracteres encerrados entre paréntesis, posteriormente podemos usar un índice para referirnos individualmente al contenido de esos paréntesis. Por ejemplo vamos a sustituir por un guión » – » todos los dígitos situados tras una letra en la cadena a explorar.

Como ves donde antes existía un dígito seguido de una letra ahora hay un dígito seguido de un guión ( ). Las coincidencias con el primer paréntesis del patrón están en $1 y con el segundo en $2. La primera coincidencia hallada es x0, luego $1 contiene x y $2 contiene 0, sustituyo lo hallado con -$2, o sea, quito $1 y pongo un guión y me quedará -0 en lugar de x0. Como se ha usado el flag g (global) esta operación se realiza en toda la cadena.

Métodos

RegExp: Compile (cadpatr).- Podemos construir un patrón de búsqueda mediante una simple asignación o mediante el constructor new RegExp y ser utilizada tal cual, pero se puede mejorar bastante la búsqueda usando este método que convierte el patrón en un formato interno para optimizar su uso. Utiliza como argumento una cadena que representa la expresión regular que se quiere compilar.

En este ejemplo se busca cualquier carácter no numérico seguido de un guión en la cadena «1234u90t-789«. Primero se declara la variable patron y se compila con el patrón \D- que indica cualquier carácter no numérico seguido de guión ( ). Por último muestra el patrón usado y los resultados de la coincidencia encontrada, posición y cadena explorada trás su búsqueda.

RegExp: Exec (cadexplor).- Este método busca la primera concordancia del patrón con el contenido de la cadena de texto donde se busca, que se le pasa como argumento. Si no encuentra ninguna concordancia devuelve null, pero encuentra una secuencia de caracteres que se adapte al patrón de búsqueda devuelve un array cuyo primer elemento indica la concordancia encontrada y las restantes indican los resultados de acuerdo a los paréntesis que aparezcan en la expresión regular. Además este array posee dos propiedades: index, para indicar la posición de la subcadena encontrada, y input, que contiene la cadena de caracteres que se está explorando. Además modifica las propiedades de una variable global RegExp con datos relativos a la búsqueda. En el ejemplo que sigue buscamos cualquier letra seguida de un número y de un guión ( ), el patrón de búsqueda será /[a..z]\d-/i, [a..z] representa todas las letras del abecedario, \d representa cualquier número y el modificador i se usa para no diferenciar mayúsculas de minúsculas.

RegExp: Test (cadexp).- Este es el método más simple del objeto expresión regular, tan sólo comprueba si existe alguna coincidencia en la cadena explorada, pasada como argumento, con el patrón de búsqueda. Si existe tal coincidencia devuelve un valor booleano true y en caso contrario devuelve false. Además afecta a las propiedades del objeto global RegExp.


En este sencillo ejemplo se comprueba si la cadena explorada, cadexpl, contiene la palabra «lunes«, sin considerar la caja (mayúsculas o minúsculas). El resultado lo guarda en la variable eslunes.

RegExp.- Se trata de una variable global usada por JavaScript cuando realiza operaciones donde intervengan expresiones regulares. Cada vez que se realiza una de estas operaciones se modifican las propiedades de esta variable. Es una variable que puede consultarse pero sobre la que se puede modificar directamente, es de sólo lectura. No tiene ningún método asociado y sus propiedades siempre hacen referencia a una operación de búsqueda, sea con los métodos de un objeto Regular Expresion o del objeto string.

Propiedades

$1..$9:.- Estos índices contienen las partes agrupadas con paréntesis en el patrón de búsqueda.

input.- Cadena que se ha explorado.

lastmatch.- Última coincidencia encontrada.

multiline.- Variable booleana que indica si la cadena explorada incluye saltos de línea.

lastParen.- Última coincidencia encontrada con un patrón entre paréntesis.

leftContext.-Toda la cadena hasta la coincidencia hallada.

rightContext.- Toda la cadena desde la coincidencia hasta el final de la cadena.

Estas propiedades sólo son de lectura y son actualizadas cada vez que se realiza alguna  búsqueda con patrón, sea con los métodos de una expresión regular o con los de String. En el siguiente ejemplo se puede observar estos valores tras una operación de búsqueda.


Puede darse el caso que este  ejemplo no lo puedas ver con todas sus propiedades en algunos navegadores.