diff options
Diffstat (limited to 'packages/browser/src/helpers/isValidDomain.ts')
-rw-r--r-- | packages/browser/src/helpers/isValidDomain.ts | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/browser/src/helpers/isValidDomain.ts b/packages/browser/src/helpers/isValidDomain.ts new file mode 100644 index 0000000..4d2eedd --- /dev/null +++ b/packages/browser/src/helpers/isValidDomain.ts @@ -0,0 +1,14 @@ +/** + * 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 sourced from here: + * https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html + */ +export function isValidDomain(hostname: string): boolean { + return ( + // Consider localhost valid as well since it's okay wrt Secure Contexts + hostname === 'localhost' || /^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(hostname) + ); +} |