Skip to content

Commit

Permalink
@sefinek/email-validator
Browse files Browse the repository at this point in the history
  • Loading branch information
sefinek committed Dec 25, 2023
1 parent 3676f7c commit 026f403
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 17 deletions.
2 changes: 1 addition & 1 deletion dist/browser.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/browser.min.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 13 additions & 15 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,6 @@
const { version } = require('../package.json');
const MAIN_REGEX = /^[-!#$%&'*+\\/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])+$/;

const emailValidator = {
test: email => {
if (!email || email.includes('*')) return false;

const [localPart, domain] = email.split('@');
if (!localPart || !domain || localPart.length > 64 || domain.length > 255) return false;

if (!isValidLocalPart(localPart) || !isValidDomain(domain)) return false;

return MAIN_REGEX.test(email);
},
version,
};

function isValidLocalPart(localPart) {
if (localPart.startsWith('.') || localPart.endsWith('.')) return false;

Expand All @@ -34,4 +20,16 @@ function isValidDomain(domain) {
return true;
}

module.exports = emailValidator;
module.exports = {
test: email => {
if (!email || email.includes('*')) return false;

const [localPart, domain] = email.split('@');
if (!localPart || !domain || localPart.length > 64 || domain.length > 255) return false;

if (!isValidLocalPart(localPart) || !isValidDomain(domain)) return false;

return MAIN_REGEX.test(email);
},
version,
};

0 comments on commit 026f403

Please sign in to comment.