@@ -158,7 +158,7 @@ jQuery.validator.addMethod("dateNL", function(value, element) {
158
158
} , "Vul hier een geldige datum in." ) ;
159
159
160
160
jQuery . validator . addMethod ( "time" , function ( value , element ) {
161
- return this . optional ( element ) || / ^ ( [ 0 - 1 ] [ 0 - 9 ] | 2 [ 0 - 3 ] ) : ( [ 0 - 5 ] [ 0 - 9 ] ) $ / . test ( value ) ;
161
+ return this . optional ( element ) || / ^ ( [ 0 - 1 ] \d | 2 [ 0 - 3 ] ) : ( [ 0 - 5 ] \d ) $ / . test ( value ) ;
162
162
} , "Please enter a valid time, between 00:00 and 23:59" ) ;
163
163
jQuery . validator . addMethod ( "time12h" , function ( value , element ) {
164
164
return this . optional ( element ) || / ^ ( ( 0 ? [ 1 - 9 ] | 1 [ 0 1 2 ] ) ( : [ 0 - 5 ] \d ) { 0 , 2 } ( \ [ A P ] M ) ) $ / i. test ( value ) ;
@@ -171,10 +171,8 @@ jQuery.validator.addMethod("time12h", function(value, element) {
171
171
* allows '-' or ' ' as a separator and allows parens around area code
172
172
* some people may want to put a '1' in front of their number
173
173
*
174
- * 1(212)-999-2345
175
- * or
176
- * 212 999 2344
177
- * or
174
+ * 1(212)-999-2345 or
175
+ * 212 999 2344 or
178
176
* 212-999-0983
179
177
*
180
178
* but not
@@ -185,32 +183,38 @@ jQuery.validator.addMethod("time12h", function(value, element) {
185
183
jQuery . validator . addMethod ( "phoneUS" , function ( phone_number , element ) {
186
184
phone_number = phone_number . replace ( / \s + / g, "" ) ;
187
185
return this . optional ( element ) || phone_number . length > 9 &&
188
- phone_number . match ( / ^ ( 1 - ? ) ? ( \( [ 2 - 9 ] \d { 2 } \) | [ 2 - 9 ] \d { 2 } ) - ? [ 2 - 9 ] \d { 2 } - ? \d { 4 } $ / ) ;
186
+ phone_number . match ( / ^ ( \+ ? 1 - ? ) ? ( \( [ 2 - 9 ] \d { 2 } \) | [ 2 - 9 ] \d { 2 } ) - ? [ 2 - 9 ] \d { 2 } - ? \d { 4 } $ / ) ;
189
187
} , "Please specify a valid phone number" ) ;
190
188
191
189
jQuery . validator . addMethod ( 'phoneUK' , function ( phone_number , element ) {
192
- phone_number = phone_number . replace ( / \s + | - / g, '' ) ;
190
+ phone_number = phone_number . replace ( / \( | \) | \ s+ | - / g, '' ) ;
193
191
return this . optional ( element ) || phone_number . length > 9 &&
194
- phone_number . match ( / ^ ( \( ? ( 0 | \+ 4 4 ) [ 1 - 9 ] { 1 } \d { 1 , 4 } ? \) ? \ s? \d { 3 , 4 } \s ? \d { 3 , 4 } ) $ / ) ;
192
+ phone_number . match ( / ^ (?: (?: (?: 0 0 \s ? | \+ ) 4 4 \s ? ) | (?: \( ? 0 ) ) (?: (?: \d { 5 } \) ? \s ? \d { 4 , 5 } ) | (?: \d { 4 } \) ? \s ? (?: \d { 5 } | \d { 3 } \s ? \d { 3 } ) ) | (?: \d { 3 } \) ? \ s? \d { 3 } \s ? \d { 3 , 4 } ) | (?: \d { 2 } \) ? \s ? \d { 4 } \s ? \d { 4 } ) ) $ / ) ;
195
193
} , 'Please specify a valid phone number' ) ;
196
194
197
195
jQuery . validator . addMethod ( 'mobileUK' , function ( phone_number , element ) {
198
196
phone_number = phone_number . replace ( / \s + | - / g, '' ) ;
199
197
return this . optional ( element ) || phone_number . length > 9 &&
200
- phone_number . match ( / ^ ( ( 0 | \+ 4 4 ) 7 ( 0 | 4 | 5 | 6 | 7 | 8 | 9 ) { 1 } \d { 2 } \s ? \d { 6 } ) $ / ) ;
198
+ phone_number . match ( / ^ (?: (?: (?: 0 0 \s ? | \+ ) 4 4 \s ? | 0 ) 7 (?: [ 4 5 7 8 9 ] \d { 2 } | 6 2 4 ) \s ? \d { 3 } \s ? \d { 3 } ) $ / ) ;
201
199
} , 'Please specify a valid mobile number' ) ;
202
200
203
201
//Matches UK landline + mobile, accepting only 01-3 for landline or 07 for mobile to exclude many premium numbers
204
202
jQuery . validator . addMethod ( 'phonesUK' , function ( phone_number , element ) {
205
203
phone_number = phone_number . replace ( / \s + | - / g, '' ) ;
206
204
return this . optional ( element ) || phone_number . length > 9 &&
207
- phone_number . match ( / ^ ( 0 [ 1 - 3 ] { 1 } [ 0 - 9 ] { 8 , 9 } ) $ / ) || phone_number . match ( / ^ ( 0 7 [ 5 - 9 ] { 1 } [ 0 - 9 ] { 7 , 8 } ) $ / ) ;
205
+ phone_number . match ( / ^ (?: (?: (?: 0 0 \s ? | \+ ) 4 4 \s ? | 0 ) (?: 1 \d { 8 , 9 } | [ 2 3 ] \d { 9 } | 7 (?: [ 4 5 7 8 9 ] \d { 8 } | 6 2 4 \d { 6 } ) ) ) $ / ) ;
208
206
} , 'Please specify a valid uk phone number' ) ;
207
+ // On the above three UK functions, do the following server side processing:
208
+ // Compare with ^((?:00\s?|\+)(44)\s?)?\(?0?(?:\)\s?)?([1-9]\d{1,4}\)?[\d\s]+)
209
+ // Extract $2 and set $prefix to '+44<space>' if $2 is '44' otherwise set $prefix to '0'
210
+ // Extract $3 and remove spaces and parentheses. Phone number is combined $2 and $3.
211
+ // A number of very detailed GB telephone number RegEx patterns can also be found at:
212
+ // http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_UK_Telephone_Numbers
209
213
210
214
//Matches UK postcode. based on http://snipplr.com/view/3152/postcode-validation/
211
215
jQuery . validator . addMethod ( 'postcodeUK' , function ( postcode , element ) {
212
216
postcode = ( postcode . toUpperCase ( ) ) . replace ( / \s + / g, '' ) ;
213
- return this . optional ( element ) || postcode . match ( / ^ ( [ ^ Q Z ] { 1 } [ ^ I J Z ] { 0 , 1 } [ 0 - 9 ] { 1 , 2 } ) ( [ 0 - 9 ] { 1 } [ ^ C I K M O V ] { 2 } ) $ / ) || postcode . match ( / ^ ( [ ^ Q V ] { 1 } [ 0 - 9 ] { 1 } [ A B C D E F G H J K S T U W ] { 1 } ) ( [ 0 - 9 ] { 1 } [ ^ C I K M O V ] { 2 } ) $ / ) || postcode . match ( / ^ ( [ ^ Q V ] { 1 } [ ^ I J Z ] [ 0 - 9 ] { 1 } [ A B E H M N P R V W X Y ] ) ( [ 0 - 9 ] { 1 } [ ^ C I K M O V ] { 2 } ) $ / ) || postcode . match ( / ^ ( G I R ) ( 0 A A ) $ / ) || postcode . match ( / ^ ( B F P O ) ( [ 0 - 9 ] { 1 , 4 } ) $ / ) || postcode . match ( / ^ ( B F P O ) ( C \/ O [ 0 - 9 ] { 1 , 3 } ) $ / ) ;
217
+ return this . optional ( element ) || postcode . match ( / ^ ( [ ^ Q Z ] [ ^ I J Z ] { 0 , 1 } \d { 1 , 2 } ) ( \d [ ^ C I K M O V ] { 2 } ) $ / ) || postcode . match ( / ^ ( [ ^ Q V ] \d [ A B C D E F G H J K S T U W ] ) ( \d [ ^ C I K M O V ] { 2 } ) $ / ) || postcode . match ( / ^ ( [ ^ Q V ] [ ^ I J Z ] \d [ A B E H M N P R V W X Y ] ) ( \d [ ^ C I K M O V ] { 2 } ) $ / ) || postcode . match ( / ^ ( G I R ) ( 0 A A ) $ / ) || postcode . match ( / ^ ( B F P O ) ( \d { 1 , 4 } ) $ / ) || postcode . match ( / ^ ( B F P O ) ( C \/ O \d { 1 , 3 } ) $ / ) ;
214
218
} , 'Please specify a valid postcode' ) ;
215
219
216
220
// TODO check if value starts with <, otherwise don't try stripping anything
@@ -259,19 +263,19 @@ jQuery.validator.addMethod("creditcardtypes", function(value, element, param) {
259
263
if ( param . all )
260
264
validTypes = 0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010 | 0x0020 | 0x0040 | 0x0080 ;
261
265
262
- if ( validTypes & 0x0001 && / ^ ( 5 1 | 5 2 | 5 3 | 5 4 | 5 5 ) / . test ( value ) ) { //mastercard
266
+ if ( validTypes & 0x0001 && / ^ ( 5 [ 1 2 3 4 5 ] ) / . test ( value ) ) { //mastercard
263
267
return value . length == 16 ;
264
268
}
265
269
if ( validTypes & 0x0002 && / ^ ( 4 ) / . test ( value ) ) { //visa
266
270
return value . length == 16 ;
267
271
}
268
- if ( validTypes & 0x0004 && / ^ ( 3 4 | 3 7 ) / . test ( value ) ) { //amex
272
+ if ( validTypes & 0x0004 && / ^ ( 3 [ 4 7 ] ) / . test ( value ) ) { //amex
269
273
return value . length == 15 ;
270
274
}
271
- if ( validTypes & 0x0008 && / ^ ( 3 0 0 | 3 0 1 | 3 0 2 | 3 0 3 | 3 0 4 | 3 0 5 | 3 6 | 3 8 ) / . test ( value ) ) { //dinersclub
275
+ if ( validTypes & 0x0008 && / ^ ( 3 ( 0 [ 0 1 2 3 4 5 ] | [ 6 8 ] ) ) / . test ( value ) ) { //dinersclub
272
276
return value . length == 14 ;
273
277
}
274
- if ( validTypes & 0x0010 && / ^ ( 2 0 1 4 | 2 1 4 9 ) / . test ( value ) ) { //enroute
278
+ if ( validTypes & 0x0010 && / ^ ( 2 ( 0 1 4 | 1 4 9 ) ) / . test ( value ) ) { //enroute
275
279
return value . length == 15 ;
276
280
}
277
281
if ( validTypes & 0x0020 && / ^ ( 6 0 1 1 ) / . test ( value ) ) { //discover
@@ -290,7 +294,7 @@ jQuery.validator.addMethod("creditcardtypes", function(value, element, param) {
290
294
} , "Please enter a valid credit card number." ) ;
291
295
292
296
jQuery . validator . addMethod ( "ipv4" , function ( value , element , param ) {
293
- return this . optional ( element ) || / ^ ( 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 ) ;
297
+ return this . optional ( element ) || / ^ ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) \. ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) \. ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) \. ( 2 5 [ 0 - 5 ] | 2 [ 0 - 4 ] \d | [ 0 1 ] ? \d \d ? ) $ / i. test ( value ) ;
294
298
} , "Please enter a valid IP v4 address." ) ;
295
299
296
300
jQuery . validator . addMethod ( "ipv6" , function ( value , element , param ) {
0 commit comments