1 | "use strict";
|
2 |
|
3 | var tester = /^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-?\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | exports.validate = function(email)
|
9 | {
|
10 | if (!email)
|
11 | return false;
|
12 |
|
13 | if(email.length>254)
|
14 | return false;
|
15 |
|
16 | var valid = tester.test(email);
|
17 | if(!valid)
|
18 | return false;
|
19 |
|
20 |
|
21 | var parts = email.split("@");
|
22 | if(parts[0].length>64)
|
23 | return false;
|
24 |
|
25 | var domainParts = parts[1].split(".");
|
26 | if(domainParts.some(function(part) { return part.length>63; }))
|
27 | return false;
|
28 |
|
29 | return true;
|
30 | }
|