• Publicidad

Validando dirección de correo (sin módulos)

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Validando dirección de correo (sin módulos)

Notapor primitivo » 2013-07-23 15:06 @671

Hola amigos, :)

Resulta que estoy validando un correo que recibo de la siguiente forma:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.  
  2.     if ($mail !~ /\.org$/)
  3.     {
  4.               print "Es correcto\n";
  5.     } else {
  6.               print "Mail corrupto\n";
  7.     }
  8.  
  9.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Lo que intento hacer, es validar el fin de la cadena $mail la cual tiene una dirección de correo.
Sólo quiero aceptar correos con terminación .com y .org, pero no obtengo el resultado que necesito.

¿Me colaboran?
primitivo
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2013-03-22 23:05 @004

Publicidad

Re: Validando dirección de correo (sin módulos)

Notapor explorer » 2013-07-23 15:15 @677

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.     if ($mail =~ /\.(com|org)$/)
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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

Re: Validando dirección de correo (sin módulos)

Notapor primitivo » 2013-07-23 15:24 @683

¿Y si deseo validar los carácteres antes de .com|org?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. if ($mail =~ /\\w*.(com|org)/)
  2.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿Sería así?
primitivo
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2013-03-22 23:05 @004

Re: Validando dirección de correo (sin módulos)

Notapor explorer » 2013-07-23 16:34 @731

Delante del .com y .org pueden ir montones de cosas.

Por ejemplo, lo siguiente es una dirección de correo válida:

[email protected]

pero también lo es esto:

Joaquin <"Programador Perl"@perlenespanol.com (esta direccion ya no esta activa)>

Sí: todo eso que ves es una dirección de correo completamente válida.

A mis clientes les permito que pongan un '#' en la parte local, para indicar que cierta dirección es válida solo durante un cierto tiempo.
O incluso yo mismo uso '+' para hacer que los correos se coloquen en su carpeta correspondiente:

[email protected]

Lo cual es muy útil para evitar que el correo se llene de correo basura, pues se pueden poner filtros de forma sencilla.

Como dices que no quieres usar módulos, lo que me temo es que quieres comprobar lo mínimo: parte local + '@' + dominio.

La parte de dominio, que es lo que preguntas, suele ser '[\w.-]+' (caracteres alfanuméricos, más el guión, más el punto para separar los subdominios), así que quedaría

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.     if ($mail =~ /[\w.-]+(com|org)/)
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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 Básico

¿Quién está conectado?

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