7.1.0 • Published 3 weeks ago
cidr-regex
Licence
BSD-2-Clause
Version
7.1.0
Deps
0
Size
8 kB
Vulns
0
Weekly
0
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:
exactboolean: Only match an exact string. Useful withRegExp#test()to check if a string is a CIDR IP address. Default: false.prefixstring: Whether a/prefixmust follow the address."required"matches only CIDR,"optional"matches CIDR and bare IP addresses,"none"matches only bare IP addresses. Default:"required".
Related
- 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