You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.5 KiB
70 lines
1.5 KiB
declare namespace ip { |
|
interface Options { |
|
/** |
|
Only match an exact string. Useful with `RegExp#test()` to check if a string is an IP address. *(`false` matches any IP address in a string)* |
|
|
|
@default false |
|
*/ |
|
readonly exact?: boolean; |
|
|
|
/** |
|
Include boundaries in the regex. When `true`, `192.168.0.2000000000` will report as an invalid IPv4 address. If this option is not set, the mentioned IPv4 address would report as valid (ignoring the trailing zeros). |
|
|
|
@default false |
|
*/ |
|
readonly includeBoundaries?: boolean; |
|
} |
|
} |
|
|
|
declare const ip: { |
|
/** |
|
Regular expression for matching IP addresses. |
|
|
|
@returns A regex for matching both IPv4 and IPv6. |
|
|
|
@example |
|
``` |
|
import ipRegex = require('ip-regex'); |
|
|
|
// Contains an IP address? |
|
ipRegex().test('unicorn 192.168.0.1'); |
|
//=> true |
|
|
|
// Is an IP address? |
|
ipRegex({exact: true}).test('unicorn 192.168.0.1'); |
|
//=> false |
|
|
|
'unicorn 192.168.0.1 cake 1:2:3:4:5:6:7:8 rainbow'.match(ipRegex()); |
|
//=> ['192.168.0.1', '1:2:3:4:5:6:7:8'] |
|
|
|
// Contains an IP address? |
|
ipRegex({includeBoundaries: true}).test('192.168.0.2000000000'); |
|
//=> false |
|
|
|
// Matches an IP address? |
|
'192.168.0.2000000000'.match(ipRegex({includeBoundaries: true})); |
|
//=> null |
|
``` |
|
*/ |
|
(options?: ip.Options): RegExp; |
|
|
|
/** |
|
@returns A regex for matching IPv4. |
|
*/ |
|
v4(options?: ip.Options): RegExp; |
|
|
|
/** |
|
@returns A regex for matching IPv6. |
|
|
|
@example |
|
``` |
|
import ipRegex = require('ip-regex'); |
|
|
|
ipRegex.v6({exact: true}).test('1:2:3:4:5:6:7:8'); |
|
//=> true |
|
``` |
|
*/ |
|
v6(options?: ip.Options): RegExp; |
|
}; |
|
|
|
export = ip;
|
|
|