UNPKG

ismail

Version:

validity checks of the most commonly used services

49 lines 1.76 kB
"use strict"; module.exports = function ismail(data) { if (typeof data !== "string") { data = data.toString(); } data = data.toLowerCase(); var valid, simplify; var da = data.substring(0, data.indexOf('@')); var ta = data.replace(/.*@/, ""); if (data.indexOf('+') >= 0) { da = da.substring(0, da.indexOf('+')); data = da + "@" + ta; } var domain = ta.substring(0, ta.indexOf('.')); var domains = ["gmail", "googlemail", "live", "hotmail", "outlook", "windowslive", "msn", "yandex"]; if (!domains.includes(domain)) { var universalRule = /^[-!#$%&'*+\/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])+$/; if (!universalRule.test(data)) { valid = false; } else { valid = true; } } else { var rules = [ /(^[a-z0-9](\.?[a-z0-9]){5,29})@(gmail|googlemail)\.com$/, /^[a-z](\.?[a-z0-9\-_]){0,}@(outlook|live|windowslive|hotmail|msn)((\.(([a-z]{2,3}))){1,2})$/, /^[a-z]([\.-]?[a-z0-9]){0,}@yandex((\.(([a-z]{2,3}))){1,2})$/ ]; if (domain == "googlemail" || domain == "gmail") { da = da.split('.').join(""); data = da + "@" + ta; data = data.replace("googlemail", "gmail"); } var control = rules.map(function (regex) { return regex.test(data); }); if (control.includes(true)) { valid = true; } else { valid = false; } } simplify = data; return { "valid": valid, "simplify": simplify }; }; //# sourceMappingURL=index.js.map