@valkyriestudios/validator
Version:
A lightweight configurable javascript validator
27 lines (26 loc) • 779 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.vEmail = vEmail;
exports.default = vEmail;
const RGX_USERNAME = /^(")?[A-Z0-9&._%+-]+(")?$/i;
const RGX_DOMAIN = /^(\w{1,})([.-]?\w)*(\.\w{2,63})+$/;
function vEmail(val) {
if (typeof val !== 'string')
return false;
const len = val.length;
if (!len)
return false;
const parts = val.split('@');
if (parts.length !== 2)
return false;
const [user, domain] = parts;
const user_len = user.length;
if (user_len > 64 ||
!RGX_USERNAME.test(user) ||
user[0] === '.' ||
user[user_len - 1] === '.' ||
user.indexOf('..') >= 0 ||
domain.length > 253)
return false;
return RGX_DOMAIN.test(domain);
}