RFC-compliant email validation and parsing
npm install @sylke/email-validationRFC-compliant email validation and parsing library for JavaScript and TypeScript.
This library provides robust email validation and parsing functionality that strictly follows RFC standards. It allows you to:
- Validate email addresses
- Validate individual parts of an email address
- Parse email addresses into their components (local part, domain, display name)
``bashUsing npm
npm install @sylke/email-validation
Usage
$3
`typescript
import { isValid } from '@sylke/email-validation';// Simple validation
console.log(isValid('user@example.com')); // true
console.log(isValid('invalid-email')); // false
// With display name
console.log(isValid('John Doe ')); // true
`$3
`typescript
import { parse } from '@sylke/email-validation';const parsed = parse('John Doe ');
console.log(parsed);
// Output:
// {
// original: 'John Doe ',
// email: 'john.doe@example.com',
// localPart: 'john.doe',
// domain: 'example.com',
// displayName: 'John Doe',
// uri: 'mailto:john.doe@example.com'
// }
`$3
`typescript
import { isValidLocalPart, isValidDomain } from '@sylke/email-validation';console.log(isValidLocalPart('john.doe')); // true
console.log(isValidLocalPart('invalid@part')); // false
console.log(isValidDomain('example.com')); // true
console.log(isValidDomain('invalid domain')); // false
`$3
`typescript
import { isValid, parse, type EmailOptions } from '@sylke/email-validation';const options: EmailOptions = {
minimumSubDomains: 2, // Require at least one subdomain (e.g., sub.example.com)
allowDomainLiteral: false, // Disallow domain literals like [127.0.0.1]
allowDisplayText: false, // Disallow display names
};
console.log(isValid('user@example', options)); // false
console.log(isValid('user@example.com', options)); // true
// This would throw an error because display names are not allowed
try {
parse('John Doe ', options);
} catch (error) {
console.error(error.message);
}
``MIT (c) 2025 Sylke Technologies, LLC. See the LICENSE file for details.