Hey, antes de empezar.. una expresión regular es una secuencia de caracteres que forma un patrón de búsqueda, principalmente utilizada para la búsqueda de patrones de cadenas de caracteres u operaciones de sustituciones. Por ejemplo, el grupo formado por las cadenas Handel, Händel y Haendel se describe mediante el patrón “H(a|ä|ae)ndel”. (tomado de la wikipedia).
De esas cosas que me entero cuando leo algo sobre node.js, fue de un interesante proyecto que pretende hacer más fácil el uso de expresiones regulares y si no fácil, al menos comprensibles al tratar de escribir las reglas que de por sí ya son algo confusas.
VerbalExpresion es una librería escrita ya para diferentes lenguajes de programación cuya finalidad es escribir expresiones regulares de una forma humana.. (no sabría como llamarle) y un claro ejemplo de su escritura en javascript sería.
var url = "https://qbit.com.mx"; var pattern = VerEx() .startOfLine() .then( "http" ) .maybe( "s" ) .then( "://" ) .maybe( "www." ) .anythingBut( " " ) .endOfLine(); if (pattern.test(url)) { alert("La Url es correcta"); } else { alert("La Url es incorrecta"); } // Y al imprimir el contenido de pattern, verán algo como: /^(http)(s)?(\:\/\/)(www\.)?([^\ ]*)$/ console.log(pattern); |
Ahora escribiendo esta regla sin VerbalExpression, se vería así de extraño.
var url = "https://qbit.com.mx"; var pattern = /^(http)(s)?(\:\/\/)(www\.)?([^\ ]*)$/; if (pattern.test(url)) { alert("La Url es correcta"); } else { alert("La Url es incorrecta"); } |
Obviamente el resultado es el mismo, pero la gran diferencia es que utilizando pseudo-code se puede obtener la expresión regular para validar cadenas de texto.
Happy coding!