aboutsummaryrefslogtreecommitdiff
path: root/functions
diff options
context:
space:
mode:
Diffstat (limited to 'functions')
-rw-r--r--functions/validate.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/functions/validate.js b/functions/validate.js
index ecf90564..3e9ff111 100644
--- a/functions/validate.js
+++ b/functions/validate.js
@@ -15,6 +15,32 @@ function validateAuthorization(auth) {
}
}
+var emailRegex = /^[-!#$%&'*+\/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])+$/;
+
+function isEmailValid(email) {
+ if (!email)
+ return false;
+
+ if(email.length>254)
+ return false;
+
+ var valid = emailRegex.test(email);
+ if(!valid)
+ return false;
+
+ // Further checking of some things regex can't handle
+ var parts = email.split("@");
+ if(parts[0].length>64)
+ return false;
+
+ var domainParts = parts[1].split(".");
+ if(domainParts.some(function(part) { return part.length>63; }))
+ return false;
+
+ return true;
+}
+
module.exports = {
validateAuthorization,
+ isEmailValid
};