0.1.6 • Published 2 years ago

is-valid-domain v0.1.6

Weekly downloads
84,252
License
MIT
Repository
github
Last release
2 years ago

is-valid-domain

Validate domain name in JavaScript

Demo

https://lab.miguelmota.com/is-valid-domain

Install

npm install is-valid-domain

Usage

const isValidDomain = require('is-valid-domain')

isValidDomain('example.com') // true
isValidDomain('foo.example.com') // true
isValidDomain('bar.foo.example.com') // true
isValidDomain('exa-mple.co.uk') // true
isValidDomain('xn--80ak6aa92e.com') // true
isValidDomain('_dnslink.ipfs.io') // true
isValidDomain('exa_mple.com') // false
isValidDomain('-example.co.uk') // false
isValidDomain('example') // false
isValidDomain('ex*mple.com') // false
isValidDomain('*.example.com') // false
isValidDomain('*.com') // false
isValidDomain(3434) // false

isValidDomain('foo.example.com', {subdomain: true}) // true
isValidDomain('foo.example.com', {subdomain: false}) // false
isValidDomain('*.example.com', {wildcard: false}) // false
isValidDomain('*.example.com', {wildcard: true}) // true
isValidDomain('*.example.com', {subdomain: false, wildcard: true}) // false
isValidDomain('はじめよう.みんな') // false
isValidDomain('はじめよう.みんな', {allowUnicode: true}) // true
isValidDomain('ai.') // false
isValidDomain('ai.', {topLevel: true}) // true

view more examples

Test

npm test

Contributing

Adding new domains:

  • Add second level domain to data/second_level_domains.csv
  • Run npm run generate to generate JSON map file
  • Run npm test

FAQ

  • Q: Why is trailing dot . in domain names verified as true?

    • A: Fully qualified domain names allow the trailing dot which represents the root zone. More info here and here.

License

MIT

britive-cli-test1beeceptor-tunnelghatad2p@infinitebrahmanuniverse/nolb-is-v@kns/js-sdkgod-tier-metadata@everything-registry/sub-chunk-1935@yued/domain-ping@edgarai/strapi-plugin-upload@flowgate/sign-in-with-ethereum@lazy-ipfs/parse-ipfs-path@khoazero123/strapi-plugin-upload@localhapp/server@luantm/strapi-plugin-uploadstorm-zone-update@commonshost/core@commonshost/cli@dcentralab/web3-wallet-connector@dcentralab/jwthash-honeypotuserscript-metadata@akemona-org/strapi-plugin-upload@adobe/ccweb-add-on-devcert@adobe/ccweb-add-on-scripts@adobe/ccweb-add-on-ssl@adguard/rules-editor@aacassandra/ivue-cli@aacassandra/wvue-cli@abtnode/router-provider@authereum/utilsssb-refstrapi-upload-pluginstrapi-plugin-uploadtalken-web3-token@childrentime/devcerttempo-email-parser@cardstack/hub@cdktf/commons@bygd/gd-sdk-pes@brimble/cliweb3-tokenwhois-raw-to-jsonjssb-refsapienteomniss3scannervue-lib-test1install-is@mensludos/web3-token@relaycorp/relaynet-core@nialloc9/vcheck@mr.xcray/thycotic-secretserver-client@eslym/tunnel@fonoster/domains@fonos/domains@toanz/strapi-plugin-upload@jupiterone/graph-whois@rootplace/websites-engine@steamship/cli@stack-forge/create-app@u22n/mailtoolsnav-express-appnav-utilsquosnumquambritive-cliproxy-cyclercdn-cache-checkcloudflare-worker-webpack-pluginpskoppupils-plugin-upload@webitel/ui-sdk@x-team/strapi-plugin-uploaddevcertremakecustom-plugin-uploaddistributed-digdomain-pingdiscord-mytoolsmy-test1-objektlistmetavananode-parse-urlavailable-domainsnoodlesoup-secret-servernotehostalexa-rank-nodejsalfred-workflow-registrar-searchnow-namebeataeharumblondie-platform-webcoscmdrainbow-pagesdatoit-plugin-uploadleadconduit-defaultleadconduit-customzenbox-utillenzjustmeloop-hapi-plugins@http2/api@huz-com/scalar
0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago

0.0.20

3 years ago

0.0.18

3 years ago

0.0.19

3 years ago

0.0.17

3 years ago

0.0.16

4 years ago

0.0.15

4 years ago

0.0.14

4 years ago

0.0.13

4 years ago

0.0.12

4 years ago

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.7

5 years ago

0.0.6

6 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

8 years ago

0.0.1

9 years ago