@@ -11,22 +11,22 @@ const { writeBuffer } = internalBinding('fs');
1111const errors = require ( 'internal/errors' ) ;
1212
1313// 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 } ` ;
1616const IPv4Reg = new RegExp ( `^${ v4Str } $` ) ;
1717
1818// IPv6 Segment
1919const v6Seg = '(?:[0-9a-fA-F]{1,4})' ;
20- const IPv6Reg = new RegExp ( '^(' +
20+ const IPv6Reg = new RegExp ( '^(?: ' +
2121 `(?:${ v6Seg } :){7}(?:${ v6Seg } |:)|` +
2222 `(?:${ 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,})?$' ) ;
3030
3131function isIPv4 ( s ) {
3232 // TODO(aduh95): Replace RegExpPrototypeTest with RegExpPrototypeExec when it
0 commit comments