What is cidr-regex?
The 'cidr-regex' npm package provides regular expressions for matching and validating CIDR (Classless Inter-Domain Routing) notation IP addresses, both IPv4 and IPv6. This is useful for network configuration, validation, and parsing tasks.
What are cidr-regex's main functionalities?
Match CIDR Notation
This feature allows you to check if a given string matches the CIDR notation for IPv4 or IPv6 addresses.
const cidrRegex = require('cidr-regex');
const ip = '192.168.0.1/24';
const isMatch = cidrRegex().test(ip);
console.log(isMatch); // true
Extract CIDR Notation
This feature allows you to extract all CIDR notations from a given string.
const cidrRegex = require('cidr-regex');
const text = 'Here is a CIDR: 192.168.0.1/24 and another one: 10.0.0.0/8';
const matches = text.match(cidrRegex());
console.log(matches); // ['192.168.0.1/24', '10.0.0.0/8']
IPv4 and IPv6 Support
This feature provides separate methods for matching IPv4 and IPv6 CIDR notations.
const cidrRegex = require('cidr-regex');
const ipv4 = '192.168.0.1/24';
const ipv6 = '2001:db8::/32';
console.log(cidrRegex.v4().test(ipv4)); // true
console.log(cidrRegex.v6().test(ipv6)); // true
Other packages similar to cidr-regex
ip-cidr
The 'ip-cidr' package provides utilities for parsing, manipulating, and validating CIDR notations. It offers more comprehensive functionality compared to 'cidr-regex', including methods for subnet calculations and IP range generation.
cidr-js
The 'cidr-js' package focuses on CIDR block calculations and IP address manipulations. It provides methods for checking if an IP is within a CIDR range, splitting CIDR blocks, and more. It is more feature-rich in terms of network calculations compared to 'cidr-regex'.
netmask
The 'netmask' package is used for IP address and network mask calculations. It allows for parsing and manipulating IP ranges and CIDR blocks, offering more advanced network-related functionalities than 'cidr-regex'.
cidr-regex
Regular expression for matching IP addresses in CIDR notation
Usage
$ npm i cidr-regex
import cidrRegex from "cidr-regex";
cidrRegex().test("foo 192.168.0.1/24");
cidrRegex({exact: true}).test("foo 192.168.0.1/24");
cidrRegex.v6({exact: true}).test("1:2:3:4:5:6:7:8/64");
"foo 192.168.0.1/24 bar 1:2:3:4:5:6:7:8/64 baz".match(cidrRegex());
API
cidrRegex([options])
Returns a regex for matching both IPv4 and IPv6 CIDR IP addresses.
cidrRegex.v4([options])
Returns a regex for matching IPv4 CIDR IP addresses.
cidrRegex.v6([options])
Returns a regex for matching IPv6 CIDR IP addresses.
options.exact
Type: boolean
Default: false
(Matches any CIDR IP address in a string)
Only match an exact string. Useful with RegExp#test()
to check if a string is a CIDR IP address.
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