• Publicidad

Validar IRI/URL en Perl. Expresiones regulares

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Validar IRI/URL en Perl. Expresiones regulares

Notapor Haidion » 2013-03-08 08:24 @391

Hola,

Quería saber si alguien conoce algún método para validar una IRI (RFC 3987) en Perl. O en su defecto, qué caracteres habría que pedir que no estuviesen presentes en la IRI. O algún documento donde esté explícitamente explicado.

Desde ya, muchas gracias.
Haidion
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2013-03-08 08:19 @388

Publicidad

Re: Validar IRI/URL en Perl. Expresiones regulares

Notapor explorer » 2013-03-08 19:21 @848

Bienvenido a los foros de Perl en Español, Haidion.

¡Vaya problema!

El caso es que en un IRI puede venir casi cualquier carácter...

Según el RFC, serían los caracteres codificados como UCS siguientes:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
   iunreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~" / ucschar

   ucschar        = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF
                  / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD
                  / %x40000-4FFFD / %x50000-5FFFD / %x60000-6FFFD
                  / %x70000-7FFFD / %x80000-8FFFD / %x90000-9FFFD
                  / %xA0000-AFFFD / %xB0000-BFFFD / %xC0000-CFFFD
                  / %xD0000-DFFFD / %xE1000-EFFFD

   iprivate       = %xE000-F8FF / %xF0000-FFFFD / %x100000-10FFFD
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Vamos, casi todos. Y además, puede venir en notación escapada ('%' con dos dígitos hexadecimales). O incluso en formato punycode...

En la función as_iri(), del módulo URI, hay una expresión regular para transformar la notación escapada a una cadena de caracteres Unicode puros.

Poco más se me ocurre...

Mírate el módulo Mozilla::DOM::URI, que trae soporte para dominios internacionales. A lo mejor por ahí encuentras la solución.

Edito: Encontrado

Edito 2: Mucho mejormás explicado (en inglés)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados