Re: Checking for a valid email address

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2009/2/27 demerphq <demerphq@xxxxxxxxx>:
> 2009/2/27 Adam Mercer <ramercer@xxxxxxxxx>:
>> Hi
>>
>> We are in the process of migrating some of our repositories from CVS
>> to Git in a two step process, first to a centralised Git setup then
>> (hopefully) onto a more distributed development model. In the testing
>> we have been doing so far the only problem we have run into is
>> developers not setting their email addresses correctly so the
>> changelogs are filled with spurious address. Does anyone know of a
>> pre-commit hook that could check for a valid email address prior to
>> allowing a commit? Or another way that this can be acheived?
>
> If you are using Perl 5.10 or later then you can use the following regex:
>
> my $email = qr {
>    (?(DEFINE)
>      (?<address>         (?&mailbox) | (?&group))
>      (?<mailbox>         (?&name_addr) | (?&addr_spec))
>      (?<name_addr>       (?&display_name)? (?&angle_addr))
>      (?<angle_addr>      (?&CFWS)? < (?&addr_spec) > (?&CFWS)?)
>      (?<group>           (?&display_name) : (?:(?&mailbox_list) | (?&CFWS))? ;
>                                             (?&CFWS)?)
>      (?<display_name>    (?&phrase))
>      (?<mailbox_list>    (?&mailbox) (?: , (?&mailbox))*)
>
>      (?<addr_spec>       (?&local_part) \@ (?&domain))
>      (?<local_part>      (?&dot_atom) | (?&quoted_string))
>      (?<domain>          (?&dot_atom) | (?&domain_literal))
>      (?<domain_literal>  (?&CFWS)? \[ (?: (?&FWS)? (?&dcontent))* (?&FWS)?
>                                    \] (?&CFWS)?)
>      (?<dcontent>        (?&dtext) | (?&quoted_pair))
>      (?<dtext>           (?&NO_WS_CTL) | [\x21-\x5a\x5e-\x7e])
>
>      (?<atext>           (?&ALPHA) | (?&DIGIT) | [!#\$%&'*+-/=?^_`{|}~])
>      (?<atom>            (?&CFWS)? (?&atext)+ (?&CFWS)?)
>      (?<dot_atom>        (?&CFWS)? (?&dot_atom_text) (?&CFWS)?)
>      (?<dot_atom_text>   (?&atext)+ (?: \. (?&atext)+)*)
>
>      (?<text>            [\x01-\x09\x0b\x0c\x0e-\x7f])
>      (?<quoted_pair>     \\ (?&text))
>
>      (?<qtext>           (?&NO_WS_CTL) | [\x21\x23-\x5b\x5d-\x7e])
>      (?<qcontent>        (?&qtext) | (?&quoted_pair))
>      (?<quoted_string>   (?&CFWS)? (?&DQUOTE) (?:(?&FWS)? (?&qcontent))*
>                           (?&FWS)? (?&DQUOTE) (?&CFWS)?)
>
>      (?<word>            (?&atom) | (?&quoted_string))
>      (?<phrase>          (?&word)+)
>
>      # Folding white space
>      (?<FWS>             (?: (?&WSP)* (?&CRLF))? (?&WSP)+)
>      (?<ctext>           (?&NO_WS_CTL) | [\x21-\x27\x2a-\x5b\x5d-\x7e])
>      (?<ccontent>        (?&ctext) | (?&quoted_pair) | (?&comment))
>      (?<comment>         \( (?: (?&FWS)? (?&ccontent))* (?&FWS)? \) )
>      (?<CFWS>            (?: (?&FWS)? (?&comment))*
>                          (?: (?:(?&FWS)? (?&comment)) | (?&FWS)))
>
>      # No whitespace control
>      (?<NO_WS_CTL>       [\x01-\x08\x0b\x0c\x0e-\x1f\x7f])
>
>      (?<ALPHA>           [A-Za-z])
>      (?<DIGIT>           [0-9])
>      (?<CRLF>            \x0d \x0a)
>      (?<DQUOTE>          ")
>      (?<WSP>             [\x20\x09])
>    )
>
>    (?&address)
> }x;
>
> which is a fully RFC compliant perl regex for validating any email address.

Er, i meant validating whether any email address is well formed of course.

Cheers,
yves



-- 
perl -Mre=debug -e "/just|another|perl|hacker/"
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux