parse-domain
Splits a URL into sub-domain, domain and the top-level domain.
Since domains are handled differently across different countries and organizations, splitting a URL into sub-domain, domain and top-level-domain parts is not a simple regexp. parse-domain uses a large list of known top-level domains from publicsuffix.org to recognize different parts of the domain.
Installation
npm install --save parse-domain
Usage
// long subdomains can be handledto; // protocols, usernames, passwords, ports, paths, queries and hashes are disregardedto; // unknown top-level domains are ignoredto; // invalid urls are also ignoredto;to;
Introducing custom tlds
// custom top-level domains can optionally be specifiedto; // custom regexps can optionally be specified (instead of customTlds)to;
It can sometimes be helpful to apply the customTlds argument using a helper function
{ return ;} to;to;
API
parseDomain(url: string, options: ParseOptions): ParsedDomain|null
Returns null
if url
has an unknown tld or if it's not a valid url.
ParseOptions
// A list of custom tlds that are first matched against the url. // Useful if you also need to split internal URLs like localhost. customTlds: RegExp|Array<string> // There are lot of private domains that act like top-level domains, // like blogspot.com, googleapis.com or s3.amazonaws.com. // By default, these domains would be split into: // { subdomain: ..., domain: "blogspot", tld: "com" } // When this flag is set to true, the domain will be split into // { subdomain: ..., domain: ..., tld: "blogspot.com" } // See also https://github.com/peerigon/parse-domain/issues/4 privateTlds: boolean - default: false
ParsedDomain
tld: string domain: string subdomain: string
License
Unlicense