JSPM

parse-email-address

0.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 208
  • Score
    100M100P100Q93126F
  • License (MIT or CC0 1.0)

Parse/validate email address with RFC-5321 and sane size limits.

Package Exports

  • parse-email-address
  • parse-email-address/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (parse-email-address) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

parse-email-address

Parse, validate, and normalize email addresses, primarily using RFC-5321.

Full docs: https://electrovir.github.io/parse-email-address

This uses and is based on smtp-address-parser v1.1.0, so it has the following features (from smtp-address-parser):

  • Domain names must be fully qualified (they must have at least two labels). The top-level domain must have at least two octets.
    • good: name@example.org
    • bad: name@example
    • bad: name@example.x
  • Total length limit of an address is 986 octets (based on a 1,000 octet SMTP line length).
  • Domain names are limited to 255 octets, when encoded with a length byte before each label, and including the top-level zero length label. So, the effective limit with interstitial dots is 253 octets.
  • Labels within a domain name are limited to 63 octets (limits of the DNS protocol).

This package adds the following features:

  • Full ESM support (this package natively runs in all modern browsers).
  • Documentation.
  • More explicit types.
  • Simplified API.
  • No dependencies.

install

npm i parse-email-address

usage

import {isValidEmailAddress, normalizeEmailAddress, parseEmailAddress} from 'parse-email-address';

/**
 * Parse email addresses into parts with `parseEmailAddress`. Returns `undefined` if the input is an
 * invalid email address.
 */

parseEmailAddress('simple@example.org'); // returns `{user: 'simple', domain: 'example.org', full: 'simple@example.org'}`
parseEmailAddress('tld-too-short@foo.x'); // returns `undefined`

/**
 * Normalize email addresses for string comparisons with `normalizeEmailAddress`. Returns
 * `undefined` if the input is an invalid email address.
 */

normalizeEmailAddress('SIMPLE@EXAMPLE.ORG'); // returns `'simple@example.org'`
normalizeEmailAddress('tld-too-short@foo.x'); // returns `undefined`

/** Check if an email address is valid with `isValidEmailAddress`. */

isValidEmailAddress('simple@example.org'); // returns `true`
isValidEmailAddress('SIMPLE@EXAMPLE.ORG'); // returns `true`
isValidEmailAddress('tld-too-short@foo.x'); // returns `false`