Blogs Media: CSS Mania | VivirLatino | Sentido Web | Apps Mania

Publicidad

Lun23Jul2007

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:
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

Relacionados