Categorías destacadas
programacion php    
Artículo
0
¡votar!

 Expresiones regulares más utilizadas en PHP

Vamos a ver diez de las expresiones regulares más utilizadas por desarrolladores en PHP. Son expresiones que se pueden modificar y adaptar a las necesidades de cada usuario.

Validar nombre de usuario

Esta validación se ha seguido siguiendo las siguientes reglas:
  • Nombre de usuario empieza con minúsculas o mayúsculas.
  • Solo puede contener letras, números o guiones.
  • Su longitud es entre 8 y 24 caracteres.
  • El usuario no puede terminar con guión bajo.

function validarUsuario($nombre)
{
return preg_match("#^[a-z][da-z_]{6,22}[a-zd]$#i", $nombre);
}

Validar una dirección de email

function validarEmail($email)
{
$reg = "#^(((([a-zd][.-+_]?)*)[a-z0-9])+)@(((([a-zd][.-_]?){0,62})[a-zd])+).([a-zd]{2,6})$#i";
return preg_match($reg, $email);
}

Validar fechas

La fecha tendrá como formato DD-MM-YYYY, con separadores /, - y .
function validarFecha($fecha){
$sep = "[/-.]";
$req = "#^(((0?[1-9]|1d|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

Valida una ip que esté dentro del rango 0.0.0.0 – 255.255.255.255
function validarIP($ip)
{
$val_0_to_255 = "(25[012345]|2[01234]d|[01]?dd?)";
$reg = "#^($val_0_to_255.$val_0_to_255.$val_0_to_255.$val_0_to_255)$#";
return preg_match($reg, $ip, $matches);
}

Validar número de teléfono

El formato del número sería así: 000 000 0000, (000)-000-0000, donde los tres primeros números serían el código de tu país.
function validarTelefono($numero)
{
$reg = "#^(?d{3})?[s.-]?d{3}[s.-]?d{4}$#";
return preg_match($reg, $numero);
}

Validar números de tarjetas de crédito
function validarTarjeta($num_tarjeta)
{
$num_tarjeta = preg_replace("/D|s/", "", $num_tarjeta);
$length = strlen($num_tarjeta);
$parity = $length % 2;
$sum=0;
for($i=0; $i<$length; $i++)
{
$digit = $num_tarjeta[$i];
if ($i%2==$parity) $digit=$digit*2;
if ($digit>9) $digit=$digit-9;
$sum=$sum+$digit;
}    
return ($sum%10==0);
}
function getTipoTarjeta($cc)
{
$cards = array(
"visa" => "(4d{12}(?:d{3})?)",
"amex" => "(3[47]d{13})",
"jcb" => "(35[2-8][89]ddd{10})",
"maestro" => "((?:5020|5038|6304|6579|6761)d{12}(?:dd)?)",
"solo" => "((?:6334|6767)d{12}(?:dd)?d?)",
"mastercard" => "(5[1-5]d{14})",
"switch" => "(?:(?:(?:4903|4905|4911|4936|6333|6759)d{12})|(?:(?:564182|633110)d{10})(dd)?d?)",
);
$names = array("Visa", "American Express", "JCB", "Maestro", "Solo", "Mastercard", "Switch");
$matches = array();
$pattern = "#^(?:".implode("|", $cards).")$#";
$result = preg_match($pattern, str_replace(" ", "", $cc), $matches);
if($result > 0)
{
$result = (validarTarjeta($cc))?1:0;
}
return ($result>0)?$names[sizeof($matches)-2]:false;
}
//ejm:
echo getTipoTarjeta("4111 1111 1111 1111");

Reemplazar URL por un link
function convertirURL($url)
{
$host = "([a-zd][-a-zd]*[a-zd].)+[a-z][-a-zd]*[a-z]";
$port = "(:d{1,})?";
$path = "(/[^?<>#"s]+)?";
$query = "(?[^<>#"s]+)?";
$reg = "#((ht|f)tps?://{$host}{$port}{$path}{$query})#i";
return preg_replace($reg, "$1", $url);
}

Limpiar palabras malsonantes
function deswear($string){
function prep_regexp_array(&$item){
$item = "#$item#i";
}
function stars($matches){
return substr($matches[0], 0, 1).str_repeat("*", strlen($matches[0])-1);
}    
$swears = array("idiota", "invecil");
array_walk($swears, "prep_regexp_array");
return preg_replace_callback($swears, "stars", $string);
}

Eliminar código Javascript
function limpiarTags($source, $tags = null)
{
function clean($matched)
{
$attribs =
"javascript:|onclick|ondblclick|onmousedown|onmouseup|onmouseover|".
"onmousemove|onmouseout|onkeypress|onkeydown|onkeyup|".
"onload|class|id|src|style";
$quot = ""|'|`";
$stripAttrib = "' ($attribs)s*=s*($quot)(.*?)(\2)'i";
$clean = stripslashes($matched[0]);
$clean = preg_replace($stripAttrib, '', $clean);
return $clean;
}      
$allowedTags='<a><br><b><i><br><li><ol><p><strong><u><ul>';
$clean = strip_tags($source, $allowedTags);
$clean = preg_replace_callback('#<(.*?)>#', "clean", $source);
return $source;
}

Reemplazar BBCode por HTML

function convertirBBcode($string)
{
    $string = strip_tags($string);
    $patterns = array(
        "bold" =&#62; "#[b](.*?)[/b]#is",
        "italics" =&#62; "#[i](.*?)[/i]#is",
        "underline" =&#62; "#[u](.*?)[/u]#is",
        "link_title" =&#62; "#[url=(.*?)](.*?)[/url]#i",
        "link_basic" =&#62; "#[url](.*?)[/url]#i",
        "color" =&#62; "#[color=(red|green|blue|yellow)](.*?)[/color]#is"
    );
    $replacements = array(
        "bold" =&#62; "&#60;b&#62;$1&#60;/b&#62;",
        "italics" =&#62; "&#60;i&#62;$1&#60;/i&#62;",
        "underline" =&#62; "&#60;u&#62;$1&#60;/u&#62;",
        "link_title" =&#62; "&#60;a href="$1"&#62;$2&#60;/a&#62;",
        "link_basic" =&#62; "&#60;a href="$1"&#62;$1&#60;/a&#62;",
        "color" =&#62; "&#60;span style='color:$1;'&#62;$2&#60;/span&#62;"
    );
    return preg_replace($patterns, $replacements, $string);
}

Via: craftyman.net
   
Publicado por:
angel carrero
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon