Skip to content

Instantly share code, notes, and snippets.

@badsyntax
Created November 29, 2010 10:32
Show Gist options
  • Save badsyntax/719800 to your computer and use it in GitHub Desktop.
Save badsyntax/719800 to your computer and use it in GitHub Desktop.
rfc822 email validation in JS
// See http://rosskendall.com/blog/web/javascript-function-to-check-an-email-address-conforms-to-rfc822
function isEmail(email){
return /^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/.test( email );
}
@jhyland87
Copy link

Why is this so different (much shorter) than the other RFC822 patterns ive found? here or here for example? (Granted, those two dont seem to work with JS regex validators such as match or test... so I like yours)

@Leonid-Yeromin
Copy link

Passes unicode like: あいうえお@domain.com

@Leonid-Yeromin
Copy link

and this:
'email@-domain.com',
'email@domain.web',
'email@111.222.333.44444',

@miniBill
Copy link

@Leonid-Yeromin with regards to the first comment: https://tools.ietf.org/html/rfc6531
wrt the second comment, avoiding the number case would overcomplicate the regex, and I don't see a problem with the second case

@curiousdustin
Copy link

According to wikipedia, this email should be a valid email.

Dörte@Sörensen.example.com

But the ö appears to make this regex test fail.

Thoughts?

Is this a valid email, but just not valid under RFC 822?

@kapitannwel
Copy link

abc@def -said it's a valid email?

@dim2k2006
Copy link

@kapitannwel have the same issue with hgdyugf@yahoo (
Any ideas on how to solve it?)

@payalord
Copy link

According to wikipedia, this email should be a valid email.

Dörte@Sörensen.example.com

But the ö appears to make this regex test fail.

Thoughts?

Is this a valid email, but just not valid under RFC 822?

This one matched your example email: https://github.com/jackfoxy/FsRegEx/blob/master/tests/Email.Tests/Ultimate.fs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment