Aunque a algunos nos gustan bastante las expresiones regulares, no está mal ofrecer una lista de alguna de ellas que nos pueden ser útiles cuando desarrollamos aplicaciones web.
- Usuario: está es sencilla, letras, dÃgitos y el subrayado, con una longitud entre 3 y 16 caracteres.
/^[a-zA-Z0-9_]{3,16}$/
- Etiquetas XHTML: habrá que sustituir la palabra etiqueta por la correspondiente que queremos buscar.
/]*>(.*?)<\/etiqueta>/
- Etiqueta con atributos: lo mismo que la anterior pero con atributos.
/]*atributo\s*=\s*(["'])valor\\1[^>]*>(.*?)<\/etiqueta>/
- Direcciones de correo: según la especificación RFC 822:
function is_valid_email_address($email){
$qtext = '[^\x0d\x22\x5c\x80-\xff]';
$dtext = '[^\x0d\x5b-\x5d\x80-\xff]';
$atom = '[^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c'.
'\x3e\x40\x5b-\x5d\x7f-\xff]+';
$quoted_pair = '\x5c[\x00-\x7f]';
$domain_literal = "\x5b($dtext|$quoted_pair)*\x5d";
$quoted_string = "\x22($qtext|$quoted_pair)*\x22";
$domain_ref = $atom;
$sub_domain = "($domain_ref|$domain_literal)";
$word = "($atom|$quoted_string)";
$domain = "$sub_domain(\x2e$sub_domain)*";
$local_part = "$word(\x2e$word)*";
$addr_spec = "$local_part\x40$domain";
return preg_match("!^$addr_spec$!", $email) ? 1 : 0;
}
- URL: para reconocer direcciones de internet:
{
\b
# Parte principal (protocolo://dominio, o solo dominio)
(
# http://, o https://
(https?)://[-\w]+(\.\w[-\w]*)+
|
# Nombre de dominio
(?i: [a-z0-9] (?:[-a-z0-9]*[a-z0-9])? \. )+ # subdominions
# .com, .net...
(?-i: com\b
| edu\b
| biz\b
| gov\b
| in(?:t|fo)\b # .int or .info
| mil\b
| net\b
| org\b
| [a-z][a-z]\.[a-z][a-z]\b # two-letter country code
)
)
# Puerto
( : \d+ )?
# El resto es opcional que empieza por /
(
/
[^.!,?;"\'<>()[]{}sx7F-\xFF]*
(
[.!,?]+ [^.!,?;â€\’<>()\[\]{\}s\x7F-\xFF]+
)*
)?
}ix
5 Regular Expressions Every Web Programmer Should Know
VÃa / dzone