sábado, 25 de febrero de 2017

El objeto RegExp

El objeto regExp es tanto un literal como un objto de javaScript, por lo que también se podrá crear usando un constructor:

var expresionregular = new RegExp("texto expresion regular");

La expresión RegExp es compilada cuando se ejecuta el script, por lo tanto se recomienda usar el literal cuando sabemos que la expresión no cambiará. Una versión compilada es mucho más eficiente.

Usaremos el objeto, cuando asbemos que la expresión regular va a cambiar, o cuando vamos a proporcionarla en tiempo d ejecución.

Al igual que otros objetos en javascript, el objeto regExp también tiene sus propiedades y métodos.

global: Especifica que sea utilizado el modificador "g".
ignoreCase: Especifica que sea utilizado el modificador "i".
lastIndex: El índice donde comenzar la siguiente búsqueda.
multiline: Especifica si el modificador "m" es utilizado.
source: El texto de la expresión regular RegExp.

Métodos de RegExp

compile(): Compila una expresión regular.
exec(): Busca la coincidencia en una cadena. Devolverá la primera coincidencia.
test(): Busca la coincidencia en una cadena. Devolverá true o false.

Ejemplos:

// Comprobando si una subcadena existe dentro de otra
var datos = new Array();
datos[0] = "El Blogger de Google";     // verdadero
datos[1] = "El blogger de Google";          // falso
datos[2] = "BloggerGoogle";          // verdadero
datos[3] = "Google Blogger";          // falso
 
var patron = /Blog.*Goog/;
// Patrón de búsqueda
// Contenga "Blog" cualquier caracter(.) 0 o más veces (*) y a continuación "Goog"
for (var i = 0; i < datos.length; i++)
  alert(datos[i] + " " + patron.test(datos[i]));

// Validación de un número de Seguridad social americano

function comprobar()
{  
     var numero = document.getElementById("ssn").value;
     var patron = /^\d{3}-?\d{2}-?\d{3}$/;
     if (numero.match(patron))
          alert("Correcto: el número "+numero+" cumple el estándar americano");
     else
          alert("Error: el número "+numero+" NO cumple el estandar.");
}

No hay comentarios:

Publicar un comentario