19 lines
787 B
JavaScript
19 lines
787 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.isValidDomain = isValidDomain;
|
|
/**
|
|
* A simple test to determine if a hostname is a properly-formatted domain name
|
|
*
|
|
* A "valid domain" is defined here: https://url.spec.whatwg.org/#valid-domain
|
|
*
|
|
* Regex was originally sourced from here, then remixed to add punycode support:
|
|
* https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html
|
|
*/
|
|
function isValidDomain(hostname) {
|
|
return (
|
|
// Consider localhost valid as well since it's okay wrt Secure Contexts
|
|
hostname === 'localhost' ||
|
|
// Support punycode (ACE) or ascii labels and domains
|
|
/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(hostname));
|
|
}
|