5 expresiones regulares útiles para desarrollo web

16:00 H (CET)| Temas: Desarrollo web
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:

1. function is_valid_email_address($email){
2.
$qtext = '[^\x0d\x22\x5c\x80-\xff]';
3.
$dtext = '[^\x0d\x5b-\x5d\x80-\xff]';
4.
$atom = '[^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c'.
5.
'\x3e\x40\x5b-\x5d\x7f-\xff]+';
6.
$quoted_pair = '\x5c[\x00-\x7f]';
7.
$domain_literal = "\x5b($dtext|$quoted_pair)*\x5d";
8.
$quoted_string = "\x22($qtext|$quoted_pair)*\x22";
9.
$domain_ref = $atom;
10. $sub_domain = "($domain_ref|$domain_literal)";
11. $word = "($atom|$quoted_string)";
12. $domain = "$sub_domain(\x2e$sub_domain)*";
13. $local_part = "$word(\x2e$word)*";
14. $addr_spec = "$local_part\x40$domain";
15.
16. return preg_match("!^$addr_spec$!", $email) ? 1 : 0;
17. }

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