silverwind/cidr-regex

Regular expression for matching IP addresses in CIDR notation and bare IP addresses

33

stars

181

commits

TypeScript

primary language

Sep 7, 2026

updated

cidr
ip
javascript
module
nodejs

README

cidr-regex

Regular expression for matching IP addresses in CIDR notation and bare IP addresses

Usage

$ npm i cidr-regex
import cidrRegex from "cidr-regex";

// Contains a CIDR IP address?
cidrRegex().test("foo 192.168.0.1/24");
//=> true

// Is a CIDR IP address?
cidrRegex({exact: true}).test("foo 192.168.0.1/24");
//=> false

cidrRegex.v6({exact: true}).test("1:2:3:4:5:6:7:8/64");
//=> true

// Extract CIDRs from string
"foo 192.168.0.1/24 bar 1:2:3:4:5:6:7:8/64 baz".match(cidrRegex());
//=> ["192.168.0.1/24", "1:2:3:4:5:6:7:8/64"]

// Is a bare IP address?
cidrRegex({exact: true, prefix: "none"}).test("192.168.0.1");
//=> true

// Is either?
cidrRegex({exact: true, prefix: "optional"}).test("192.168.0.1");
//=> true
cidrRegex({exact: true, prefix: "optional"}).test("192.168.0.1/24");
//=> true

API

All three functions match CIDR notation by default. The prefix option switches them to bare IP addresses or to either.

cidrRegex(options?: CidrRegexOptions)

Returns a regex for matching both IPv4 and IPv6 CIDR IP addresses.

cidrRegex.v4(options?: CidrRegexOptions)

Returns a regex for matching IPv4 CIDR IP addresses.

cidrRegex.v6(options?: CidrRegexOptions)

Returns a regex for matching IPv6 CIDR IP addresses.

CidrRegexOptions

The options object has the following properties:

  • exact boolean: Only match an exact string. Useful with RegExp#test() to check if a string is a CIDR IP address. Default: false.
  • prefix string: Whether a /prefix must follow the address. "required" matches only CIDR, "optional" matches CIDR and bare IP addresses, "none" matches only bare IP addresses. Default: "required".
  • ip-bigint - Convert IPv4 and IPv6 addresses to native BigInt and vice-versa
  • ip-regex - Regular expression for matching IP addresses
  • is-cidr - Check if a string is an IP address in CIDR notation
  • is-ip - Check if a string is an IP address
  • cidr-tools - Tools to work with IPv4 and IPv6 CIDR network lists

License

© silverwind, distributed under BSD licence

Based on previous work by Felipe Apostol

Contributors

silverwind

167 commits

flipjs

12 commits

BendingBender

1 commits

sairon

1 commits

silverwind/cidr-regex

Regular expression for matching IP addresses in CIDR notation and bare IP addresses

33

stars

181

commits

TypeScript

primary language

Sep 7, 2026

updated

cidr
ip
javascript
module
nodejs

README

cidr-regex

Regular expression for matching IP addresses in CIDR notation and bare IP addresses

Usage

$ npm i cidr-regex
import cidrRegex from "cidr-regex";

// Contains a CIDR IP address?
cidrRegex().test("foo 192.168.0.1/24");
//=> true

// Is a CIDR IP address?
cidrRegex({exact: true}).test("foo 192.168.0.1/24");
//=> false

cidrRegex.v6({exact: true}).test("1:2:3:4:5:6:7:8/64");
//=> true

// Extract CIDRs from string
"foo 192.168.0.1/24 bar 1:2:3:4:5:6:7:8/64 baz".match(cidrRegex());
//=> ["192.168.0.1/24", "1:2:3:4:5:6:7:8/64"]

// Is a bare IP address?
cidrRegex({exact: true, prefix: "none"}).test("192.168.0.1");
//=> true

// Is either?
cidrRegex({exact: true, prefix: "optional"}).test("192.168.0.1");
//=> true
cidrRegex({exact: true, prefix: "optional"}).test("192.168.0.1/24");
//=> true

API

All three functions match CIDR notation by default. The prefix option switches them to bare IP addresses or to either.

cidrRegex(options?: CidrRegexOptions)

Returns a regex for matching both IPv4 and IPv6 CIDR IP addresses.

cidrRegex.v4(options?: CidrRegexOptions)

Returns a regex for matching IPv4 CIDR IP addresses.

cidrRegex.v6(options?: CidrRegexOptions)

Returns a regex for matching IPv6 CIDR IP addresses.

CidrRegexOptions

The options object has the following properties:

  • exact boolean: Only match an exact string. Useful with RegExp#test() to check if a string is a CIDR IP address. Default: false.
  • prefix string: Whether a /prefix must follow the address. "required" matches only CIDR, "optional" matches CIDR and bare IP addresses, "none" matches only bare IP addresses. Default: "required".
  • ip-bigint - Convert IPv4 and IPv6 addresses to native BigInt and vice-versa
  • ip-regex - Regular expression for matching IP addresses
  • is-cidr - Check if a string is an IP address in CIDR notation
  • is-ip - Check if a string is an IP address
  • cidr-tools - Tools to work with IPv4 and IPv6 CIDR network lists

License

© silverwind, distributed under BSD licence

Based on previous work by Felipe Apostol

Contributors

silverwind

167 commits

flipjs

12 commits

BendingBender

1 commits

sairon

1 commits

Languages

TypeScript

95.0%

Makefile

5.0%