@@ -11,22 +11,22 @@ const { writeBuffer } = internalBinding('fs');
11
11
const errors = require ( 'internal/errors' ) ;
12
12
13
13
// IPv4 Segment
14
- const v4Seg = '(?:[0-9]|[1-9 ][0-9]|1[0-9][0-9]|2[0-4 ][0-9]|25 [0-5 ])' ;
15
- const v4Str = `(${ v4Seg } [.] ){3}${ v4Seg } ` ;
14
+ const v4Seg = '(?:25 [0-5]|2[0-4 ][0-9]|1[0-9][0-9]|[1-9 ][0-9]|[0-9 ])' ;
15
+ const v4Str = `(?: ${ v4Seg } \. ){3}${ v4Seg } ` ;
16
16
const IPv4Reg = new RegExp ( `^${ v4Str } $` ) ;
17
17
18
18
// IPv6 Segment
19
19
const v6Seg = '(?:[0-9a-fA-F]{1,4})' ;
20
- const IPv6Reg = new RegExp ( '^(' +
20
+ const IPv6Reg = new RegExp ( '^(?: ' +
21
21
`(?:${ v6Seg } :){7}(?:${ v6Seg } |:)|` +
22
22
`(?:${ v6Seg } :){6}(?:${ v4Str } |:${ v6Seg } |:)|` +
23
- `(?:${ v6Seg } :){5}(?::${ v4Str } |(:${ v6Seg } ){1,2}|:)|` +
24
- `(?:${ v6Seg } :){4}(?:(: ${ v6Seg } ){0,1}:${ v4Str } |(:${ v6Seg } ){1,3}|:)|` +
25
- `(?:${ v6Seg } :){3}(?:(: ${ v6Seg } ){0,2}:${ v4Str } |(:${ v6Seg } ){1,4}|:)|` +
26
- `(?:${ v6Seg } :){2}(?:(: ${ v6Seg } ){0,3}:${ v4Str } |(:${ v6Seg } ){1,5}|:)|` +
27
- `(?:${ v6Seg } :){1}(?:(: ${ v6Seg } ){0,4}:${ v4Str } |(:${ v6Seg } ){1,6}|:)|` +
28
- `(?::((?::${ v6Seg } ){0,5}:${ v4Str } |(?::${ v6Seg } ){1,7}|:))` +
29
- ')(%[0-9a-zA-Z-.:]{1,})?$' ) ;
23
+ `(?:${ v6Seg } :){5}(?::${ v4Str } |(?: :${ v6Seg } ){1,2}|:)|` +
24
+ `(?:${ v6Seg } :){4}(?:(?:: ${ v6Seg } ){0,1}:${ v4Str } |(?: :${ v6Seg } ){1,3}|:)|` +
25
+ `(?:${ v6Seg } :){3}(?:(?:: ${ v6Seg } ){0,2}:${ v4Str } |(?: :${ v6Seg } ){1,4}|:)|` +
26
+ `(?:${ v6Seg } :){2}(?:(?:: ${ v6Seg } ){0,3}:${ v4Str } |(?: :${ v6Seg } ){1,5}|:)|` +
27
+ `(?:${ v6Seg } :){1}(?:(?:: ${ v6Seg } ){0,4}:${ v4Str } |(?: :${ v6Seg } ){1,6}|:)|` +
28
+ `(?::(?: (?::${ v6Seg } ){0,5}:${ v4Str } |(?::${ v6Seg } ){1,7}|:))` +
29
+ ')(?: %[0-9a-zA-Z-.:]{1,})?$' ) ;
30
30
31
31
function isIPv4 ( s ) {
32
32
// TODO(aduh95): Replace RegExpPrototypeTest with RegExpPrototypeExec when it
0 commit comments