jueves, 19 de septiembre de 2013

Expresiones regulares con preg_match


A continuación veremos distintas expresiones regulares que pueden ser utilizadas con preg_match() ...

Para números naturales, útil para filtrar los famosos ids por los cuales se realizan ataques de inyección sql
 
$numerosnaturales = "/^[0-9]+$/";

Para números naturales y decimales, válidos 2, 3.14, ...
 
$numerosnaturalesydecimales = "/^([0-9]+\.+[0-9]|[0-9])+$/";

Sólo letras mayúsculas y minúsculas, esto no incluye los acentos, así que si introduces á no es correcto, si sólo quieres que acepte minúsculas quita la i de la expresión regular
 
$sololetras = "/^[a-z]+$/i";

Para caracteres latinos ignorando mayúsculas y minúsculas, quita la i de la expresión regular si sólo quieres permitir minúsculas
 
$caractereslatinos = "/^[a-záéóóúàèìòùäëïöüñ\s]+$/i";

Para filtrar emails email@mail.com, email.admin@mail.com, ...
 
$email = "/^[a-zA-Z0-9\._-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,4}$/";

Passwords que tienen que contener tanto números como letras
 
$password = "/^([a-z]+[0-9]+)|([0-9]+[a-z]+)/i";

Para urls, permite subdominios como http://www.eldominio.sub.com
 
$url = "/^(http|https|ftp)+\:+\/\/+(www\.|)+[a-z\-\.]+([a-z\.]|)+\.[a-z]{2,4}$/i";

Fecha formato: 12/12/2014
 
$fecha = "/^([0-9]{2}\/[0-9]{2}\/[0-9]{4})$/";

Nueve dígitos: 900505050
 
$telefono = "/[0-9]{9}$/";

Para localhost
 
$localhost = "/^http:\/\/(localhost|127\.0\.0\.1)/";

Para códigos postales
 
$codigo_postal = "/^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$/";

Para el Documento NIF
 
$NIF = "/^\d{8}[a-zA-Z]{1}$/";

Para el Documento CIF
 
$CIF = "/^[a-zA-Z]{1}\d{7}[a-zA-Z0-9]{1}$/";

Para el documento NIE
 
$NIE = "/^[XxTtYyZz]{1}[0-9]{7}[a-zA-Z]{1}$/";

Tarjetas de crédito VISA
 
$VISA = "/^4[0-9]{3}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}$/";

Tarjetas de crédito MASTERCARD
 
$MASTERCARD = "/^5[1-5][0-9]{2}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}$/";