@devmehq/email-validator-js
Version:
Advanced Email Validation with DNS MX lookup and Mailbox Verification
31 lines (30 loc) • 1.11 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.isValidEmailDomain = isValidEmailDomain;
exports.isValidEmail = isValidEmail;
const psl_1 = require("psl");
const isValidResults = {};
function isValidEmailDomain(emailOrDomain) {
let [_, emailDomain] = emailOrDomain === null || emailOrDomain === void 0 ? void 0 : emailOrDomain.split('@');
if (!emailDomain) {
emailDomain = _;
}
if (!emailDomain) {
return false;
}
// cache results
if (isValidResults[emailDomain])
return isValidResults[emailDomain];
try {
isValidResults[emailDomain] = (0, psl_1.isValid)(emailDomain);
return isValidResults[emailDomain];
}
catch (e) {
isValidResults[emailDomain] = false;
return false;
}
}
function isValidEmail(emailAddress) {
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(String(emailAddress).toLowerCase()) && emailAddress.indexOf('.+') === -1;
}
;