@@ -72,63 +72,66 @@ define([
7272 ] ,
7373 'max-words' : [
7474 function ( value , params ) {
75- return utils . stripHtml ( value ) . match ( / \b \w + \b / g) . length < params ;
75+ return utils . isEmpty ( value ) || utils . stripHtml ( value ) . match ( / \b \w + \b / g) . length < params ;
7676 } ,
7777 $ . mage . __ ( 'Please enter {0} words or less.' )
7878 ] ,
7979 'min-words' : [
8080 function ( value , params ) {
81- return utils . stripHtml ( value ) . match ( / \b \w + \b / g) . length >= params ;
81+ return utils . isEmpty ( value ) || utils . stripHtml ( value ) . match ( / \b \w + \b / g) . length >= params ;
8282 } ,
8383 $ . mage . __ ( 'Please enter at least {0} words.' )
8484 ] ,
8585 'range-words' : [
8686 function ( value , params ) {
8787 var match = utils . stripHtml ( value ) . match ( / \b \w + \b / g) || [ ] ;
8888
89- return match . length >= params [ 0 ] &&
89+ return utils . isEmpty ( value ) || match . length >= params [ 0 ] &&
9090 match . length <= params [ 1 ] ;
9191 } ,
9292 $ . mage . __ ( 'Please enter between {0} and {1} words.' )
9393 ] ,
9494 'letters-with-basic-punc' : [
9595 function ( value ) {
96- return / ^ [ a - z \- . , ( ) \u0027 \u0022 \s ] + $ / i. test ( value ) ;
96+ return utils . isEmpty ( value ) || / ^ [ a - z \- . , ( ) \u0027 \u0022 \s ] + $ / i. test ( value ) ;
9797 } ,
9898 $ . mage . __ ( 'Letters or punctuation only please' )
9999 ] ,
100100 'alphanumeric' : [
101101 function ( value ) {
102- return / ^ \w + $ / i. test ( value ) ;
102+ return utils . isEmpty ( value ) || / ^ \w + $ / i. test ( value ) ;
103103 } ,
104104 $ . mage . __ ( 'Letters, numbers, spaces or underscores only please' )
105105 ] ,
106106 'letters-only' : [
107107 function ( value ) {
108- return / ^ [ a - z ] + $ / i. test ( value ) ;
108+ return utils . isEmpty ( value ) || / ^ [ a - z ] + $ / i. test ( value ) ;
109109 } ,
110110 $ . mage . __ ( 'Letters only please' )
111111 ] ,
112112 'no-whitespace' : [
113113 function ( value ) {
114- return / ^ \S + $ / i. test ( value ) ;
114+ return utils . isEmpty ( value ) || / ^ \S + $ / i. test ( value ) ;
115115 } ,
116116 $ . mage . __ ( 'No white space please' )
117117 ] ,
118118 'zip-range' : [
119119 function ( value ) {
120- return / ^ 9 0 [ 2 - 5 ] - \d { 2 } - \d { 4 } $ / . test ( value ) ;
120+ return utils . isEmpty ( value ) || / ^ 9 0 [ 2 - 5 ] - \d { 2 } - \d { 4 } $ / . test ( value ) ;
121121 } ,
122122 $ . mage . __ ( 'Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx' )
123123 ] ,
124124 'integer' : [
125125 function ( value ) {
126- return / ^ - ? \d + $ / . test ( value ) ;
126+ return utils . isEmpty ( value ) || / ^ - ? \d + $ / . test ( value ) ;
127127 } ,
128128 $ . mage . __ ( 'A positive or negative non-decimal number please' )
129129 ] ,
130130 'vinUS' : [
131131 function ( value ) {
132+ if ( utils . isEmpty ( value ) ) {
133+ return true ;
134+ }
132135 if ( value . length !== 17 ) {
133136 return false ;
134137 }
@@ -214,33 +217,33 @@ define([
214217 ] ,
215218 'time' : [
216219 function ( value ) {
217- return / ^ ( [ 0 1 ] \d | 2 [ 0 - 3 ] ) ( : [ 0 - 5 ] \d ) { 0 , 2 } $ / . test ( value ) ;
220+ return utils . isEmpty ( value ) || / ^ ( [ 0 1 ] \d | 2 [ 0 - 3 ] ) ( : [ 0 - 5 ] \d ) { 0 , 2 } $ / . test ( value ) ;
218221 } ,
219222 $ . mage . __ ( 'Please enter a valid time, between 00:00 and 23:59' )
220223 ] ,
221224 'time12h' : [
222225 function ( value ) {
223- return / ^ ( ( 0 ? [ 1 - 9 ] | 1 [ 0 1 2 ] ) ( : [ 0 - 5 ] \d ) { 0 , 2 } ( \ [ A P ] M ) ) $ / i. test ( value ) ;
226+ return utils . isEmpty ( value ) || / ^ ( ( 0 ? [ 1 - 9 ] | 1 [ 0 1 2 ] ) ( : [ 0 - 5 ] \d ) { 0 , 2 } ( \ [ A P ] M ) ) $ / i. test ( value ) ;
224227 } ,
225228 $ . mage . __ ( 'Please enter a valid time, between 00:00 am and 12:00 pm' )
226229 ] ,
227230 'phoneUS' : [
228231 function ( value ) {
229232 value = value . replace ( / \s + / g, '' ) ;
230233
231- return value . length > 9 && value . match ( / ^ ( 1 - ? ) ? ( \( [ 2 - 9 ] \d { 2 } \) | [ 2 - 9 ] \d { 2 } ) - ? [ 2 - 9 ] \d { 2 } - ? \d { 4 } $ / ) ;
234+ return utils . isEmpty ( value ) || value . length > 9 && value . match ( / ^ ( 1 - ? ) ? ( \( [ 2 - 9 ] \d { 2 } \) | [ 2 - 9 ] \d { 2 } ) - ? [ 2 - 9 ] \d { 2 } - ? \d { 4 } $ / ) ;
232235 } ,
233236 $ . mage . __ ( 'Please specify a valid phone number' )
234237 ] ,
235238 'phoneUK' : [
236239 function ( value ) {
237- return value . length > 9 && value . match ( / ^ ( \( ? ( 0 | \+ 4 4 ) [ 1 - 9 ] { 1 } \d { 1 , 4 } ?\) ? \s ? \d { 3 , 4 } \s ? \d { 3 , 4 } ) $ / ) ;
240+ return utils . isEmpty ( value ) || value . length > 9 && value . match ( / ^ ( \( ? ( 0 | \+ 4 4 ) [ 1 - 9 ] { 1 } \d { 1 , 4 } ?\) ? \s ? \d { 3 , 4 } \s ? \d { 3 , 4 } ) $ / ) ;
238241 } ,
239242 $ . mage . __ ( 'Please specify a valid phone number' )
240243 ] ,
241244 'mobileUK' : [
242245 function ( value ) {
243- return value . length > 9 && value . match ( / ^ ( ( 0 | \+ 4 4 ) 7 \d { 3 } \s ? \d { 6 } ) $ / ) ;
246+ return utils . isEmpty ( value ) || value . length > 9 && value . match ( / ^ ( ( 0 | \+ 4 4 ) 7 \d { 3 } \s ? \d { 6 } ) $ / ) ;
244247 } ,
245248 $ . mage . __ ( 'Please specify a valid mobile number' )
246249 ] ,
@@ -252,20 +255,23 @@ define([
252255 ] ,
253256 'email2' : [
254257 function ( value ) {
255- return / ^ ( ( ( [ a - z ] | \d | [ ! # \$ % & \u0027 \* \+ \- \/ = \? \^ _ ` { \| } ~ ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) + ( \. ( [ a - z ] | \d | [ ! # \$ % & \u0027 \* \+ \- \/ = \? \^ _ ` { \| } ~ ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) + ) * ) | ( ( \u0022 ) ( ( ( ( \x20 | \x09 ) * ( \x0d \x0a ) ) ? ( \x20 | \x09 ) + ) ? ( ( [ \x01 - \x08 \x0b \x0c \x0e - \x1f \x7f ] | \x21 | [ \x23 - \x5b ] | [ \x5d - \x7e ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( \\ ( [ \x01 - \x09 \x0b \x0c \x0d - \x7f ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ) ) ) * ( ( ( \x20 | \x09 ) * ( \x0d \x0a ) ) ? ( \x20 | \x09 ) + ) ? ( \u0022 ) ) ) @ ( ( ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) * ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ) ) \. ) * ( ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) * ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ) ) \. ? $ / i. test ( value ) ; //eslint-disable-line max-len
258+ return utils . isEmpty ( value ) || / ^ ( ( ( [ a - z ] | \d | [ ! # \$ % & \u0027 \* \+ \- \/ = \? \^ _ ` { \| } ~ ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) + ( \. ( [ a - z ] | \d | [ ! # \$ % & \u0027 \* \+ \- \/ = \? \^ _ ` { \| } ~ ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) + ) * ) | ( ( \u0022 ) ( ( ( ( \x20 | \x09 ) * ( \x0d \x0a ) ) ? ( \x20 | \x09 ) + ) ? ( ( [ \x01 - \x08 \x0b \x0c \x0e - \x1f \x7f ] | \x21 | [ \x23 - \x5b ] | [ \x5d - \x7e ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( \\ ( [ \x01 - \x09 \x0b \x0c \x0d - \x7f ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ) ) ) * ( ( ( \x20 | \x09 ) * ( \x0d \x0a ) ) ? ( \x20 | \x09 ) + ) ? ( \u0022 ) ) ) @ ( ( ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) * ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ) ) \. ) * ( ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) * ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ) ) \. ? $ / i. test ( value ) ; //eslint-disable-line max-len
256259 } ,
257260 $ . validator . messages . email
258261 ] ,
259262 'url2' : [
260263 function ( value ) {
261- return / ^ ( h t t p s ? | f t p ) : \/ \/ ( ( ( ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( % [ \d a - f ] { 2 } ) | [ ! \$ & \u0027 \( \) \* \+ , ; = ] | : ) * @ ) ? ( ( ( \d | [ 1 - 9 ] \d | 1 \d \d | 2 [ 0 - 4 ] \d | 2 5 [ 0 - 5 ] ) \. ( \d | [ 1 - 9 ] \d | 1 \d \d | 2 [ 0 - 4 ] \d | 2 5 [ 0 - 5 ] ) \. ( \d | [ 1 - 9 ] \d | 1 \d \d | 2 [ 0 - 4 ] \d | 2 5 [ 0 - 5 ] ) \. ( \d | [ 1 - 9 ] \d | 1 \d \d | 2 [ 0 - 4 ] \d | 2 5 [ 0 - 5 ] ) ) | ( ( ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) * ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ) ) \. ) * ( ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) * ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ) ) \. ? ) ( : \d * ) ? ) ( \/ ( ( ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( % [ \d a - f ] { 2 } ) | [ ! \$ & \u0027 \( \) \* \+ , ; = ] | : | @ ) + ( \/ ( ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( % [ \d a - f ] { 2 } ) | [ ! \$ & \u0027 \( \) \* \+ , ; = ] | : | @ ) * ) * ) ? ) ? ( \? ( ( ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( % [ \d a - f ] { 2 } ) | [ ! \$ & \u0027 \( \) \* \+ , ; = ] | : | @ ) | [ \uE000 - \uF8FF ] | \/ | \? ) * ) ? ( \# ( ( ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( % [ \d a - f ] { 2 } ) | [ ! \$ & \u0027 \( \) \* \+ , ; = ] | : | @ ) | \/ | \? ) * ) ? $ / i. test ( value ) ; //eslint-disable-line max-len
264+ return utils . isEmpty ( value ) || / ^ ( h t t p s ? | f t p ) : \/ \/ ( ( ( ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( % [ \d a - f ] { 2 } ) | [ ! \$ & \u0027 \( \) \* \+ , ; = ] | : ) * @ ) ? ( ( ( \d | [ 1 - 9 ] \d | 1 \d \d | 2 [ 0 - 4 ] \d | 2 5 [ 0 - 5 ] ) \. ( \d | [ 1 - 9 ] \d | 1 \d \d | 2 [ 0 - 4 ] \d | 2 5 [ 0 - 5 ] ) \. ( \d | [ 1 - 9 ] \d | 1 \d \d | 2 [ 0 - 4 ] \d | 2 5 [ 0 - 5 ] ) \. ( \d | [ 1 - 9 ] \d | 1 \d \d | 2 [ 0 - 4 ] \d | 2 5 [ 0 - 5 ] ) ) | ( ( ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) * ( [ a - z ] | \d | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ) ) \. ) * ( ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) * ( [ a - z ] | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) ) ) \. ? ) ( : \d * ) ? ) ( \/ ( ( ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( % [ \d a - f ] { 2 } ) | [ ! \$ & \u0027 \( \) \* \+ , ; = ] | : | @ ) + ( \/ ( ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( % [ \d a - f ] { 2 } ) | [ ! \$ & \u0027 \( \) \* \+ , ; = ] | : | @ ) * ) * ) ? ) ? ( \? ( ( ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( % [ \d a - f ] { 2 } ) | [ ! \$ & \u0027 \( \) \* \+ , ; = ] | : | @ ) | [ \uE000 - \uF8FF ] | \/ | \? ) * ) ? ( \# ( ( ( [ a - z ] | \d | - | \. | _ | ~ | [ \u00A0 - \uD7FF \uF900 - \uFDCF \uFDF0 - \uFFEF ] ) | ( % [ \d a - f ] { 2 } ) | [ ! \$ & \u0027 \( \) \* \+ , ; = ] | : | @ ) | \/ | \? ) * ) ? $ / i. test ( value ) ; //eslint-disable-line max-len
262265 } ,
263266 $ . validator . messages . url
264267 ] ,
265268 'credit-card-types' : [
266269 function ( value , param ) {
267270 var validTypes ;
268271
272+ if ( utils . isEmpty ( value ) ) {
273+ return true ;
274+ }
269275 if ( / [ ^ 0 - 9 - ] + / . test ( value ) ) {
270276 return false ;
271277 }
@@ -350,19 +356,19 @@ define([
350356 ] ,
351357 'ipv4' : [
352358 function ( value ) {
353- return / ^ ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] [ 0 - 9 ] | [ 0 1 ] ? [ 0 - 9 ] [ 0 - 9 ] ? ) \. ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] [ 0 - 9 ] | [ 0 1 ] ? [ 0 - 9 ] [ 0 - 9 ] ? ) \. ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] [ 0 - 9 ] | [ 0 1 ] ? [ 0 - 9 ] [ 0 - 9 ] ? ) \. ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] [ 0 - 9 ] | [ 0 1 ] ? [ 0 - 9 ] [ 0 - 9 ] ? ) $ / i. test ( value ) ; //eslint-disable-line max-len
359+ return utils . isEmpty ( value ) || / ^ ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] [ 0 - 9 ] | [ 0 1 ] ? [ 0 - 9 ] [ 0 - 9 ] ? ) \. ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] [ 0 - 9 ] | [ 0 1 ] ? [ 0 - 9 ] [ 0 - 9 ] ? ) \. ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] [ 0 - 9 ] | [ 0 1 ] ? [ 0 - 9 ] [ 0 - 9 ] ? ) \. ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] [ 0 - 9 ] | [ 0 1 ] ? [ 0 - 9 ] [ 0 - 9 ] ? ) $ / i. test ( value ) ; //eslint-disable-line max-len
354360 } ,
355361 $ . mage . __ ( 'Please enter a valid IP v4 address.' )
356362 ] ,
357363 'ipv6' : [
358364 function ( value ) {
359- return / ^ ( ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 7 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 6 } : [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 5 } : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) ? [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 4 } : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 2 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 3 } : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 3 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 2 } : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 4 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 6 } ( ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) \. ) { 3 } ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 5 } : ( ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) \. ) { 3 } ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) ) | ( : : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 5 } ( ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) \. ) { 3 } ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) ) | ( [ 0 - 9 A - F a - f ] { 1 , 4 } : : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 5 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( : : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 6 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 1 , 7 } : ) ) $ / i. test ( value ) ; //eslint-disable-line max-len
365+ return utils . isEmpty ( value ) || / ^ ( ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 7 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 6 } : [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 5 } : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) ? [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 4 } : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 2 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 3 } : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 3 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 2 } : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 4 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 6 } ( ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) \. ) { 3 } ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 5 } : ( ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) \. ) { 3 } ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) ) | ( : : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 5 } ( ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) \. ) { 3 } ( \b ( ( 2 5 [ 0 - 5 ] ) | ( 1 \d { 2 } ) | ( 2 [ 0 - 4 ] \d ) | ( \d { 1 , 2 } ) ) \b ) ) | ( [ 0 - 9 A - F a - f ] { 1 , 4 } : : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 5 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( : : ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 0 , 6 } [ 0 - 9 A - F a - f ] { 1 , 4 } ) | ( ( [ 0 - 9 A - F a - f ] { 1 , 4 } : ) { 1 , 7 } : ) ) $ / i. test ( value ) ; //eslint-disable-line max-len
360366 } ,
361367 $ . mage . __ ( 'Please enter a valid IP v6 address.' )
362368 ] ,
363369 'pattern' : [
364370 function ( value , param ) {
365- return new RegExp ( param ) . test ( value ) ;
371+ return utils . isEmpty ( value ) || new RegExp ( param ) . test ( value ) ;
366372 } ,
367373 $ . mage . __ ( 'Invalid format.' )
368374 ] ,
@@ -838,7 +844,7 @@ define([
838844 return validateCreditCard ( value ) ;
839845 }
840846
841- return false ;
847+ return true ;
842848 } ,
843849 $ . mage . __ ( 'Please enter a valid credit card number.' )
844850 ] ,
@@ -879,10 +885,14 @@ define([
879885 ] ,
880886 'validate-per-page-value-list' : [
881887 function ( value ) {
882- var isValid = ! utils . isEmpty ( value ) ,
888+ var isValid = utils . isEmpty ( value ) ,
883889 values = value . split ( ',' ) ,
884890 i ;
885891
892+ if ( isValid ) {
893+ return true ;
894+ }
895+
886896 for ( i = 0 ; i < values . length ; i ++ ) {
887897 if ( ! / ^ [ 0 - 9 ] + $ / . test ( values [ i ] ) ) {
888898 isValid = false ;
0 commit comments