Validar dirección de email
Con esta función podremos validar si la cadena de texto que hemos recibido siguie el patrón de un email válido.function validaEmail($email) { $reg = "#^(((( [a-z\d] [\.\-\+_] ?)*) [a-z0-9] )+)\@(((( [a-z\d] [\.\-_] ?){0,62}) [a-z\d] )+)\.( [a-z\d] {2,6})$#i"; return preg_match($reg, $email); }
La función devuelve 0 (cero o false) si no encuentra coincidencia, así que la podemos usar como boolean en nuestro código de manera similar a ésta :
if(validaEmail("email@dominio.com")) { echo "email valido"; } else { echo "email invalido"; }
Validar fecha
Con la siguiente función podemos validar si una fecha sigue el formato dd/mm/aaaa con los separadores barra "/" o guión "-"function validaFecha($fecha){ $sep = " [\/\-] "; $req = "#^(((0? [1-9] |1\d|2 [0-8] ){$sep}(0? [1-9] |1 [012] )|(29|30){$sep}(0? [13456789] |1 [012] )|31{$sep}(0? [13578] |1 [02] )){$sep}(19| [2-9] \d)\d{2}|29{$sep}0?2{$sep}((19| [2-9] \d)(0 [48] | [2468] [048] | [13579] [26] )|(( [2468] [048] | [3579] [26] )00)))$#"; return preg_match($reg, $fecha); }
Validar dirección IP
Esta función valida si una dirección IP está dentro del rango entre 0.0.0.0 y 255.255.255.255function validarIP($ip) { $val_0_to_255 = "(25 [012345] |2 [01234] \d| [01] ?\d\d?)"; $reg = "#^($val_0_to_255\.$val_0_to_255\.$val_0_to_255\.$val_0_to_255)$#"; return preg_match($reg, $ip, $matches); }
Fácilmente adaptable al nuevo protocolo IPv6 añadiendo dos veces más la validación "\.$val_0_to_255" en la segunda línea
Validar codigos postales
Esta función solo permite numeros con formatos xxxxx o xxxxx-xxxx correspondiente al patron de los codigos postalesif (preg_match('/^[0-9]{5,5}([- ]?[0-9]{4,4})?$/', $string)) { echo "código postal"; }
Borrar link tags <a> con expresiones regulares
Con la siguiene función php podremos borrar de una cadena de texto los enlaces que contenga en html dejando solo el texto plano que en el anchor del enlace. Por ejemplo si tenemos un texto como :<p>El mejor <a href="http://www.google.com">buscador</a> de internet</p>
Usando esta expresión regular podremos eliminar el enlace y dejar la palabra buscador como texto plano :
$texto = preg_replace('/\(.*)\<\/a\>/i','$2',$texto);
Y obtener la misma frase pero sin el enlace
<p>El mejor buscador de internet</p>
Resaltar palabras buscadas
Con ésta útil y a la par sencilla expresión regular podremos resaltar las palabras buscadas en nuestros resultados de búsqueda.$texto = "Texto de ejemplo con la palabra que estamos buscando"; $texto = preg_replace("/b(palabra)b/i", '<span style="background:#5fc9f6">1</span>', $texto); echo $texto;
En este caso estamos buscando "palabra" en la variable string y el resultado sería algo parecido a ésto :
Texto de ejemplo con la <span style="background:#5fc9f6">palabra</span> que estamos buscando
Como véis dominar las expresiones regulares puede ser algo extremadamente útil a la hora de tratar la información en nuestro código.
es posible validad si un style css esta bien scrito ?
ResponderEliminarpor ejemplo
$string = 'position:absolute;top:0;bottom:0;margin-left : -1px;padding:0;'
if (preg_match('alguna expresion regular', $string)) {
echo "style css correcto";
}
si es posible conoces alguna exprecion regular?
gracias y saludos
Hola, en el ejemplo que yo expongo se validan cosas mas sencillas. Realmente, para validar si el css sintacticamente es correcto no creo que haya problema. Pero, en cambio, para validar cada una de las posibles expressiones en css, su validez, su sintaxis, el rango de valores, etc.. entonces ya si hablamos de algo complejo, que desconozco si es posible validar con una única expresión regular.. imagino que como minimo harian falta varias, cada para validar una parte concreta. Un saludo.
EliminarLe veo una pequeña pega a la validación de IP´S admite ceros de relleno por la izquierda, alguién podría mejorarlo ?
ResponderEliminarSaludos.
Gracias.