sub es_email_mal_formado {
my $x = $_[0];
if ($x =~ m/[^\w\@\.\-]/) {return "Incluye un carácter prohibido"};
if ($x =~ m/\W\W/) {return "Tiene dos no alfanuméricos seguidos"};
if ($x =~ m/\@.+\@/) {return "Tiene más de una arroba"};
if (! ($x =~ m/\w\@\w/)) {return "No tiene arroba precedida y seguida de alfanumérico"};
if (! ($x =~ m/\w\.\w/)) {return "No tiene punto precedido y seguido de alfanumérico"};
if (! ($x =~ m/\@.+\./)) {return "No tiene punto en la parte que sigue a la arroba"};
if ($x =~ m/^\W/) {return "Empieza en no alfanumérico"};
if (! ($x =~ m/\.\w{2,4}$/)) {return "No tiene \"de 2 a 4 alfanuméricos\" al final"};
if ($x =~ m/(\@|\.).\.\w+$/) {return "Tiene una sola letra antes del último punto"};
return 0;
}
my $esc = '\\\\';
my $period = '\.';
my $space = '\040';
my $open_br = '\[';
my $close_br = '\]';
my $nonASCII = '\x80-\xff';
my $ctrl = '\000-\037';
my $cr_list = '\n\015';
my $qtext = qq/[^$esc$nonASCII$cr_list\"]/; # "
my $dtext = qq/[^$esc$nonASCII$cr_list$open_br$close_br]/;
my $quoted_pair = qq<$esc>.qq<[^$nonASCII]>;
my $atom_char = qq/[^($space)<>\@,;:\".$esc$open_br$close_br$ctrl$nonASCII]/;
my $atom = qq<$atom_char+(?!$atom_char)>;
my $quoted_str = qq<\"$qtext*(?:$quoted_pair$qtext*)*\">;
my $word = qq<(?:$atom|$quoted_str)>;
my $domain_ref = $atom;
my $domain_lit = qq<$open_br(?:$dtext|$quoted_pair)*$close_br>;
my $sub_domain = qq<(?:$domain_ref|$domain_lit)>;
my $domain = qq<$sub_domain(?:$period$sub_domain)*>;
my $local_part = qq<$word(?:$word|$period)*>;
my $Addr_spec_re = qr<$local_part\@$domain>;
# Is an address valid?
if ( $address =~ /^$Addr_spec_re$/o ) {
# Yes
}
else {
# No
}
perl -le "print unpack'N', pack'B32', '00000000000000000000001011100110'"
-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.
perlmonks.org content © perlmonks.org and Anonymous Monk, gellyfish, Jorge_de_Burgos, merlyn, rob_au
prlmnks.org © 2006 edmund von der burg (eccles & toad)
v 0.03