Las expresiones regulares en programación son muy útiles para validar campos enviados y parámetros recibidos de formularios web, ya sean de contacto, usuario y contraseña o de cualquier otro tipo. Es cierto que las expresiones regulares pueden ser muy complejas, pero con algunos ejemplos sencillos y un poco de práctica podemos apreciar su verdadera potencia. En el mercado existen muchas soluciones predefinidas para no tener que ir validando manualmente los parámetros y “parseando” las entradas, pero hace tiempo que yo vengo utilizando algunas funciones propias que de forma sencilla evitan el tan temido SQL inyectado. En ASP es muy fácil utilizar expresiones regulares. Por ejemplo, para validar cadenas numéricas y alfanuméricas, utilizo estas dos funciones:

function esValidoNum(cadena)
  set expReg = New RegExp
  expReg.Pattern = "^[0-9]+$"
  esValidoNum = expReg.Test(cadena) and len(cadena) < 6
  set expReg = nothing
end function
 
function esValidoAlfaNum(cadena)
  set expReg = New RegExp
  expReg.Pattern = "^[a-zA-Z0-9-]+$"
  esValidoAlfaNum = expReg.Test(cadena) and len(cadena) < 256
  set expReg = nothing
end function

Como norma general, en primer lugar se declara la variable que tendrá la expresión regular y se le especifica el patrón a seguir mediante los diferentes símbolos:

^ : comienzo de la expresión regular
$ : fin de la expresión regular
+ : utilizado para especificar una o más apariciones de los símbolos precedentes
[…] : rango

Así pues en el primer ejemplo anterior se validan expresiones numéricas, es decir, una o más repeticiones de números entre 0 y 9, y de longitud menor que 6 (len(cadena)<6), mientras que en el segundo se validan cadenas alfanuméricas (sin acentos, ñ, ç,…), es decir, una o más repeticiones de letras minúsculas entre a y z, mayúsculas entre A y Z, números entre 0 y 9 y guiones (-), y de longitud menor de 256 carácteres (len(cadena)<256).

Con estas simples pero potentes funciones podemos validar usuarios y contraseñas y parámetros sencillos pasados por GET o POST como id’s, cadenas simples,…

En todos los lenguajes existen las expresiones regulares y el uso es bastante similar. De hecho, en Javascript es muy fácil utilizar las funciones para validar los campos en el cliente antes de enviar el formulario web.

Se pueden encontrar expresiones regulares predefinidas para validar e-mails, teléfonos, fechas, horas,… en RegExLib, una web muy útil.

Etiquetas: , , , , ,
Deja una Respuesta