miércoles, 17 de octubre de 2012

26 - RegExp en Javascript



Interesante: Vídeo Tutorial de Javascript, aprende a programar Javascript desde cero.

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.

var patron= /\D(\d)(\D)/g;
var buscaren = "abde5fghj45oi";
var hallado = patron.exec(buscaren);
var item; document.write("$1: "+RegExp.$1+"<br>");
document.write("$2: "+RegExp.$2+"<br> ");
document.write("input: "+RegExp.input+"<br> ");
document.write("index: "+RegExp.index+"<br> ");
document.write("lastIndex: "+RegExp.lastIndex+"<br> ") ;
document.write("multiline: "+RegExp.multiline+"<br>");
document.write("lastMatch: "+RegExp.lastMatch+"<br>");
document.write("lastParen: "+RegExp.lastParen +"<br>");
document.write("leftContext: "+RegExp.leftContext +"<br>");
document.write("rightContext:"+RegExp.rightContext+"<br>");


Si pruebas este ejemplo con MSIExplorer y Netscape podrás ver que no todas estas propiedades son reconocidas por ambos navegadores: Netscape y MSIexplorer.