This is the definition of a valid email address, quoted from RFC 822:
(http://www.w3.org/Protocols/rfc822/rfc822.txt)

     addr-spec   =  local-part "@" domain        ; global address

Subsequent definitions follow:

     local-part  =  word *("." word)             ; uninterpreted
                                                 ; case-preserved

     word        =  atom / quoted-string

     atom        =  1*

                                                 ; (  Octal, Decimal.)
     CHAR        =          ; (  0-177,  0.-127.)
     SPACE       =              ; (     40,      32.)
     CTL         =            ; (    177,     127.)

     specials    =  "(" / ")" / "<" / ">" / "@"  ; Must be in quoted-
                 /  "," / ";" / ":" / "\" / <">  ;  string, to use
                 /  "." / "[" / "]"              ;  within a word.

The plus sign is hex value 0x2B (reference any ASCII chart, such as
http://www.jimprice.com/jim-asc.htm), which translates to decimal 43. As
you can clearly see, decimal character 43 is not in the list of
specials, is not a space, and is not a control character, and is
therefore a perfectly legal character to have in an atom. From there
it's legal to be in a word, a local-part, and thus the first part of a
legal e-mail address.

Your validation code is broken, and violates the accepted specification
for Internet e-mail. It undermines the cohesion of the Internet mail
system. I hope you will take note and resolve this bug.