1
1
'use strict' ;
2
2
3
+ var util = require ( './util' ) ;
3
4
4
5
var DATE = / ^ \d \d \d \d - ( \d \d ) - ( \d \d ) $ / ;
5
6
var DAYS = [ , 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] ;
@@ -8,33 +9,41 @@ var HOSTNAME = /^[a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[a-z](?:(?:[-0-9a-z]{0
8
9
var URI = / ^ (?: [ a - z ] [ a - z 0 - 9 + \- . ] * : ) ? (?: \/ \/ (?: (?: [ a - z 0 - 9 \- . _ ~ ! $ & ' ( ) * + , ; = : ] | % [ 0 - 9 a - f ] { 2 } ) * @ ) ? (?: \[ (?: (?: (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 6 } | : : (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 5 } | (?: [ 0 - 9 a - f ] { 1 , 4 } ) ? : : (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 4 } | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 0 , 1 } [ 0 - 9 a - f ] { 1 , 4 } ) ? : : (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 3 } | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 0 , 2 } [ 0 - 9 a - f ] { 1 , 4 } ) ? : : (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 2 } | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 0 , 3 } [ 0 - 9 a - f ] { 1 , 4 } ) ? : : [ 0 - 9 a - f ] { 1 , 4 } : | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 0 , 4 } [ 0 - 9 a - f ] { 1 , 4 } ) ? : : ) (?: [ 0 - 9 a - f ] { 1 , 4 } : [ 0 - 9 a - f ] { 1 , 4 } | (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) \. ) { 3 } (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 0 , 5 } [ 0 - 9 a - f ] { 1 , 4 } ) ? : : [ 0 - 9 a - f ] { 1 , 4 } | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 0 , 6 } [ 0 - 9 a - f ] { 1 , 4 } ) ? : : ) | [ V v ] [ 0 - 9 a - f ] + \. [ a - z 0 - 9 \- . _ ~ ! $ & ' ( ) * + , ; = : ] + ) \] | (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) \. ) { 3 } (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) | (?: [ a - z 0 - 9 \- . _ ~ ! $ & ' ( ) * + , ; = ] | % [ 0 - 9 a - f ] { 2 } ) * ) (?: : \d * ) ? (?: \/ (?: [ a - z 0 - 9 \- . _ ~ ! $ & ' ( ) * + , ; = : @ ] | % [ 0 - 9 a - f ] { 2 } ) * ) * | \/ (?: (?: [ a - z 0 - 9 \- . _ ~ ! $ & ' ( ) * + , ; = : @ ] | % [ 0 - 9 a - f ] { 2 } ) + (?: \/ (?: [ a - z 0 - 9 \- . _ ~ ! $ & ' ( ) * + , ; = : @ ] | % [ 0 - 9 a - f ] { 2 } ) * ) * ) ? | (?: [ a - z 0 - 9 \- . _ ~ ! $ & ' ( ) * + , ; = : @ ] | % [ 0 - 9 a - f ] { 2 } ) + (?: \/ (?: [ a - z 0 - 9 \- . _ ~ ! $ & ' ( ) * + , ; = : @ ] | % [ 0 - 9 a - f ] { 2 } ) * ) * ) (?: \? (?: [ a - z 0 - 9 \- . _ ~ ! $ & ' ( ) * + , ; = : @ \/ ? ] | % [ 0 - 9 a - f ] { 2 } ) * ) ? (?: \# (?: [ a - z 0 - 9 \- . _ ~ ! $ & ' ( ) * + , ; = : @ \/ ? ] | % [ 0 - 9 a - f ] { 2 } ) * ) ? $ / i;
9
10
10
11
11
- module . exports = {
12
- full : {
13
- date : date ,
14
- 'date-time' : date_time ,
15
- uri : uri ,
16
- email : / ^ [ a - z 0 - 9 ! # $ % & ' * + / = ? ^ _ ` { | } ~ - ] + (?: \. [ a - z 0 - 9 ! # $ % & ' ' * + / = ? ^ _ ` { | } ~ - ] + ) * @ (?: [ a - z 0 - 9 ] (?: [ a - z 0 - 9 - ] * [ a - z 0 - 9 ] ) ? \. ) + [ a - z 0 - 9 ] (?: [ a - z 0 - 9 - ] * [ a - z 0 - 9 ] ) ? $ / ,
17
- hostname : hostname ,
18
- ipv4 : / ^ (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) \. ) { 3 } (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) $ / ,
19
- ipv6 : / ^ \s * (?: (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 7 } (?: [ 0 - 9 a - f ] { 1 , 4 } | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 6 } (?: : [ 0 - 9 a - f ] { 1 , 4 } | (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 5 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 2 } ) | : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 4 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 3 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) ? : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 3 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 4 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 2 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 2 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 5 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 3 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 1 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 6 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 4 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: : (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 7 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 5 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) ) (?: % .+ ) ? \s * $ / i,
20
- regex : regex
21
- } ,
22
- fast : {
23
- // date: http://tools.ietf.org/html/rfc3339#section-5.6
24
- date : / ^ \d \d \d \d - [ 0 - 1 ] \d - [ 0 - 3 ] \d $ / ,
25
- // date-time: http://tools.ietf.org/html/rfc3339#section-5.6
26
- 'date-time' : / ^ \d \d \d \d - [ 0 - 1 ] \d - [ 0 - 3 ] \d [ t ] [ 0 - 2 ] \d : [ 0 - 5 ] \d : [ 0 - 5 ] \d (?: \. \d + ) ? (?: z | [ + - ] \d \d : \d \d ) $ / i,
27
- // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
28
- uri : / ^ ( [ a - z ] [ a - z 0 - 9 + - . ] * : ) { 0 , 1 } \/ \/ [ ^ \s ] * $ / i,
29
- // email (sources from jsen validator):
30
- // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
31
- // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')
32
- email : / ^ [ a - z 0 - 9 . ! # $ % & ' * + \/ = ? ^ _ ` { | } ~ - ] + @ [ a - z 0 - 9 ] (?: [ a - z 0 - 9 - ] { 0 , 61 } [ a - z 0 - 9 ] ) ? (?: \. [ a - z 0 - 9 ] (?: [ a - z 0 - 9 - ] { 0 , 61 } [ a - z 0 - 9 ] ) ? ) * $ / i,
33
- hostname : HOSTNAME ,
34
- ipv4 : / ^ (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) \. ) { 3 } (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) $ / ,
35
- ipv6 : / ^ \s * (?: (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 7 } (?: [ 0 - 9 a - f ] { 1 , 4 } | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 6 } (?: : [ 0 - 9 a - f ] { 1 , 4 } | (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 5 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 2 } ) | : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 4 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 3 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) ? : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 3 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 4 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 2 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 2 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 5 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 3 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 1 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 6 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 4 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: : (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 7 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 5 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) ) (?: % .+ ) ? \s * $ / i,
36
- regex : regex
37
- }
12
+ module . exports = formats ;
13
+
14
+ function formats ( mode ) {
15
+ mode = mode == 'full' ? 'full' : 'fast' ;
16
+ return util . copy ( formats [ mode ] ) ;
17
+ }
18
+
19
+
20
+ formats . fast = {
21
+ // date: http://tools.ietf.org/html/rfc3339#section-5.6
22
+ date : / ^ \d \d \d \d - [ 0 - 1 ] \d - [ 0 - 3 ] \d $ / ,
23
+ // date-time: http://tools.ietf.org/html/rfc3339#section-5.6
24
+ 'date-time' : / ^ \d \d \d \d - [ 0 - 1 ] \d - [ 0 - 3 ] \d [ t ] [ 0 - 2 ] \d : [ 0 - 5 ] \d : [ 0 - 5 ] \d (?: \. \d + ) ? (?: z | [ + - ] \d \d : \d \d ) $ / i,
25
+ // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
26
+ uri : / ^ ( [ a - z ] [ a - z 0 - 9 + - . ] * : ) { 0 , 1 } \/ \/ [ ^ \s ] * $ / i,
27
+ // email (sources from jsen validator):
28
+ // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
29
+ // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')
30
+ email : / ^ [ a - z 0 - 9 . ! # $ % & ' * + \/ = ? ^ _ ` { | } ~ - ] + @ [ a - z 0 - 9 ] (?: [ a - z 0 - 9 - ] { 0 , 61 } [ a - z 0 - 9 ] ) ? (?: \. [ a - z 0 - 9 ] (?: [ a - z 0 - 9 - ] { 0 , 61 } [ a - z 0 - 9 ] ) ? ) * $ / i,
31
+ hostname : HOSTNAME ,
32
+ ipv4 : / ^ (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) \. ) { 3 } (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) $ / ,
33
+ ipv6 : / ^ \s * (?: (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 7 } (?: [ 0 - 9 a - f ] { 1 , 4 } | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 6 } (?: : [ 0 - 9 a - f ] { 1 , 4 } | (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 5 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 2 } ) | : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 4 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 3 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) ? : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 3 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 4 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 2 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 2 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 5 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 3 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 1 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 6 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 4 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: : (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 7 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 5 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) ) (?: % .+ ) ? \s * $ / i,
34
+ regex : regex
35
+ } ;
36
+
37
+
38
+ formats . full = {
39
+ date : date ,
40
+ 'date-time' : date_time ,
41
+ uri : uri ,
42
+ email : / ^ [ a - z 0 - 9 ! # $ % & ' * + / = ? ^ _ ` { | } ~ - ] + (?: \. [ a - z 0 - 9 ! # $ % & ' ' * + / = ? ^ _ ` { | } ~ - ] + ) * @ (?: [ a - z 0 - 9 ] (?: [ a - z 0 - 9 - ] * [ a - z 0 - 9 ] ) ? \. ) + [ a - z 0 - 9 ] (?: [ a - z 0 - 9 - ] * [ a - z 0 - 9 ] ) ? $ / ,
43
+ hostname : hostname ,
44
+ ipv4 : / ^ (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) \. ) { 3 } (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) $ / ,
45
+ ipv6 : / ^ \s * (?: (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 7 } (?: [ 0 - 9 a - f ] { 1 , 4 } | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 6 } (?: : [ 0 - 9 a - f ] { 1 , 4 } | (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 5 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 2 } ) | : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 4 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 3 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) ? : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 3 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 4 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 2 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 2 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 5 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 3 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: (?: [ 0 - 9 a - f ] { 1 , 4 } : ) { 1 } (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 6 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 4 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) | (?: : (?: (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 1 , 7 } ) | (?: (?: : [ 0 - 9 a - f ] { 1 , 4 } ) { 0 , 5 } : (?: (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) (?: \. (?: 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | 1 \d \d | [ 1 - 9 ] ? \d ) ) { 3 } ) ) | : ) ) ) (?: % .+ ) ? \s * $ / i,
46
+ regex : regex
38
47
} ;
39
48
40
49
0 commit comments