Validate Domain Names as outlined by RFC 2181
npm install is-domain-name
Domain names are composed of labels interleaved with a separator (
Domain as allowed a total length of 255 chars including separators.
Labels should be between 1 and 63 octets.
Labels allows domains to form a hierarchy, with the right most label acting as the root. The leftmost label is often called the TLD (Top-Level Domain), the 2nd leftmost informally called the domain and any label to the right of those called subdomains.
A common domain with only a single label is
This module checks the following:
- The domain is no longer than 255 chars
- The domain is at least 2 chars. Even though
ais technically allowed, this module does not allow it
- Labels are between 1 and 63 chars
- Labels start and end with alpha-numeric chars, allowing dashes in between
- An optional root dot can be allowed with a flag, eg.
const assert = require('assert') const isDomainName = require('is-domain-name') assert.ok(isDomainName('localhost')) assert.notOk(isDomainName('-.-'))
Whether or not to validate for a trailing dot, signifying the root