17 Feb

Expresiones regulares y objetos RegExp en javascript

Ejemplo de expresiones regulares capturando un nombre y un apellido, que si no cumple lo que se pide pues añada un mensaje en un div con id error

//Nombre:adfadfa
var patronNombre=/^([a-z]|[A-Z])+/;

//apellidos:adfafa dfadfadfa
var patronApellidos=/^([a-z]|[A-Z])+ ([a-z]|[A-Z])+$/;
 if (patronNombre.test(document.getElementById(“nombre”).value)){

}
     else{
document.getElementById(“errores”).innerHTML=”Existe un error en el nombre, por favor modifiquelo”;
document.getElementById(“nombre”).setFocus();
}

 if (patronApellidos.test(document.getElementById(“apellidos”).value)){

}
     else{
document.getElementById(“errores”).innerHTML=”Existe un error en el apellido, por favor modifiquelo”;
document.getElementById(“apellidos”).setFocus();
}

Esto era un ejemplo rápido para ver como lo utilizamos. Ahora pondré las diferentes patrones.

PATRONES DE EXPRESIONES REGULARES

^ Al inicio de una cadena /^Esto/ Coincidencia en “Esto es…”.
$ Al final de la cadena /final$/ Coincidencia en “Esto es el final”.
* Coincide 0 o más veces /se*/ Que la “e” aparezca 0 o más veces: “seeee” y también “se”.
? Coincide 0 o 1 vez /ap? Que la p aparezca 0 o 1 vez: “apple” y “and”.
+ Coincide 1 o más veces /ap+/ Que la “p” aparezca 1 o más veces: “apple” pero no “and”.
{n} Coincide exactamente n veces /ap{2}/ Que la “p” aparezca exactamente 2 veces: “apple” pero no “apabullante”.
{n,} Coincide n o más veces /ap{2,}/ Que la “p” aparezca 2 o más veces: “apple” y “appple” pero no en “apabullante”.
{n,m} Coincide al menos n, y máximo m veces /ap{2,4}/ Que la “p” aparezca al menos 2 veces y como máximo 4 veces: “apppppple” (encontrará 4 “p”).
. Cualquier carácter excepto nueva línea /a.e/ Que aparezca cualquier carácter, excepto nueva línea entre la a y la e: “ape” y “axe”.
[...] Cualquier carácter entre corchetes /a[px]e/ Que aparezca alguno de los caracteres “p” o “x” entre la a y la e: “ape”, “axe”, pero no “ale”.
[^...] Cualquier carácter excepto los que están entre corchetes /a[^px]/ Que aparezca cualquier carácter excepto la “p” o la “x” después de la letra a: “ale”, pero no “axe” o “ape”.
b Coincide con el inicio de una palabra /bno/ Que “no” esté al comienzo de una palabra: “novedad”.
B Coincide al final de una palabra /Bno/ Que “no” esté al final de una palabra: “este invierno” (“no” de “invierno”).
d Dígitos del 0 al 9 /d{3}/ Que aparezcan exactamente 3 dígitos: “Ahora en 456”.
D Cualquier carácter que no sea un dígito /D{2,4}/ Que aparezcan mínimo 2 y máximo 4 caracteres que no sean dígitos: encontrará la cadena “Ahor” en “Ahora en 456”.
w Coincide con caracteres del tipo (letras, dígitos, subrayados) /w/ Que aparezca un carácter (letra, dígito o subrayado): “J” en “JavaScript”.
W Coincide con caracteres que no sean (letras, dígitos, subrayados) /W/ Que aparezca un carácter (que no sea letra, dígito o subrayado): “%” en “100%”.
n Coincide con una nueva línea
s Coincide con un espacio en blanco
S Coincide con un carácter que no es un espacio en blanco
t Un tabulador
(x) Capturando paréntesis Recuerda los caracteres.
r Un retorno de carro
?=n Cualquier cadena que está seguida por la cadena n indicada después del igual. /la(?= mundo) Hola mundo mundial.

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

var expresionregular = new RegExp(“Texto Expresión Regular”);

¿Cuándo usar el literal o el objeto?

La expresión RegExp literal 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 sabemos que la expresión regular va a cambiar, o cuando vamos a proporcionarla en tiempo de ejecución.

Al igual que otros objetos en JavaScript, el objeto RegExp también tiene sus propiedades y métodos:

Propiedades del objeto RegExp

Propiedad Descripción
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étodo Descripción
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.
Métodos del objeto RegExp

ejemplo capturar Edad entre dos números:

         var patronEdad=/^[0-9]+$/; var vEdad=document.getElementById(“edad”).value;    if ((patronEdad.test(vEdad)) && (vEdad>=0) && (vEdad<=105)){   }

ejemplo capturar DNI:

          *dni:12345678-a    *8 números de 0 a 9 se pone [0-9]{8}  *el guion lo dejamos como –  *([a-z]|[A-Z]) esto signfica que tiene que aparecer una letra minuscula o una letra mayuscula*/ var patronDni=/^[0-9]{8}-([a-z]|[A-Z])$/;   if (patronDni.test(document.getElementById(“nif”).value)){   }

ejemplo capturar email:

           * email: 1º @ 2º. es/com  * 1º la primera parte estará compuesta por n posiciones alfanuméricas, al menos debe de tener un caracter  *  @ seguido de una arroba  * 2ºesta parte podríamos limitarlo a varios dominios hotmail,gmail yahoo, pero lo haremos igual que la 1º parte con n caracteres alfanuméricos, debe de tener al menos un caracter  * el final irá seguido por un punto más un es o un com*/   var patronEmail=/^([a-z]*[A-Z]*[0-9]*)+@([a-z]*[A-Z]*[0-9]*)+.(es|com)$/;   if (patronEmail.test(document.getElementById(“email”).value)){   }

Share this

Leave a reply