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
Interesante Luis!!!
Justo acabo de leer que Google tiene intenciones de integrar esta tecnologÃa en su navegador Chrome. Si se integra en el navegador, crees que podrÃa ser interesante para los creadores de juegos o para determinadas aplicaciones que requieran un 3D fluido?
Un saludico!!!