@@ -127,28 +127,25 @@ public function validate()
127
127
//Solo, Switch or Maestro. International safe
128
128
'SO ' => '/(^(6334)[5-9](\d{11}$|\d{13,14}$))|(^(6767)(\d{12}$|\d{14,15}$))/ ' ,
129
129
'SM ' => '/(^(5[0678])\d{11,18}$)|(^(6[^05])\d{11,18}$)|(^(601)[^1]\d{9,16}$)|(^(6011)\d{9,11}$) ' .
130
- '|(^(6011)\d{13,16}$)|(^(65)\d{11,13}$)|(^(65)\d{15,18}$) ' .
131
- '|(^(49030)[2-9](\d{10}$|\d{12,13}$))|(^(49033)[5-9](\d{10}$|\d{12,13}$)) ' .
132
- '|(^(49110)[1-2](\d{10}$|\d{12,13}$))|(^(49117)[4-9](\d{10}$|\d{12,13}$)) ' .
133
- '|(^(49118)[0-2](\d{10}$|\d{12,13}$))|(^(4936)(\d{12}$|\d{14,15}$))/ ' ,
130
+ '|(^(6011)\d{13,16}$)|(^(65)\d{11,13}$)|(^(65)\d{15,18}$) ' .
131
+ '|(^(49030)[2-9](\d{10}$|\d{12,13}$))|(^(49033)[5-9](\d{10}$|\d{12,13}$)) ' .
132
+ '|(^(49110)[1-2](\d{10}$|\d{12,13}$))|(^(49117)[4-9](\d{10}$|\d{12,13}$)) ' .
133
+ '|(^(49118)[0-2](\d{10}$|\d{12,13}$))|(^(4936)(\d{12}$|\d{14,15}$))/ ' ,
134
134
// Visa
135
135
'VI ' => '/^4[0-9]{12}([0-9]{3})?$/ ' ,
136
136
// Master Card
137
- 'MC ' => '/^5[1-5][0-9]{14 }$/ ' ,
137
+ 'MC ' => '/^(?: 5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12 }$/ ' ,
138
138
// American Express
139
139
'AE ' => '/^3[47][0-9]{13}$/ ' ,
140
140
// Discover
141
- 'DI ' => '/^(30[0-5][0-9]{13}|3095[0-9]{12}|35(2[8-9][0-9]{12}|[3-8][0-9]{13}) ' .
142
- '|36[0-9]{12}|3[8-9][0-9]{14}|6011(0[0-9]{11}|[2-4][0-9]{11}|74[0-9]{10}|7[7-9][0-9]{10} ' .
143
- '|8[6-9][0-9]{10}|9[0-9]{11})|62(2(12[6-9][0-9]{10}|1[3-9][0-9]{11}|[2-8][0-9]{12} ' .
144
- '|9[0-1][0-9]{11}|92[0-5][0-9]{10})|[4-6][0-9]{13}|8[2-8][0-9]{12})|6(4[4-9][0-9]{13} ' .
145
- '|5[0-9]{14}))$/ ' ,
141
+ 'DI ' => '/^(6011((0|9|[2-4])[0-9]{11,14}|(74|7[7-9]|8[6-9])[0-9]{10,13})|6(4[4-9][0-9]{13,16}| ' .
142
+ '5[0-9]{14,17}))/ ' ,
143
+ 'DN ' => '/^3(0[0-5][0-9]{13,16}|095[0-9]{12,15}|(6|[8-9])[0-9]{14,17})/ ' ,
144
+ // UnionPay
145
+ 'UN ' => '/^622(1(2[6-9][0-9]{10,13}|[3-9][0-9]{11,14})|[3-8][0-9]{12,15}|9([[0-1][0-9]{11,14}| ' .
146
+ '2[0-5][0-9]{10,13}))|62[4-6][0-9]{13,16}|628[2-8][0-9]{12,15}/ ' ,
146
147
// JCB
147
- 'JCB ' => '/^(30[0-5][0-9]{13}|3095[0-9]{12}|35(2[8-9][0-9]{12}|[3-8][0-9]{13})|36[0-9]{12} ' .
148
- '|3[8-9][0-9]{14}|6011(0[0-9]{11}|[2-4][0-9]{11}|74[0-9]{10}|7[7-9][0-9]{10} ' .
149
- '|8[6-9][0-9]{10}|9[0-9]{11})|62(2(12[6-9][0-9]{10}|1[3-9][0-9]{11}|[2-8][0-9]{12} ' .
150
- '|9[0-1][0-9]{11}|92[0-5][0-9]{10})|[4-6][0-9]{13}|8[2-8][0-9]{12})|6(4[4-9][0-9]{13} ' .
151
- '|5[0-9]{14}))$/ ' ,
148
+ 'JCB ' => '/^35(2[8-9][0-9]{12,15}|[3-8][0-9]{13,16})/ ' ,
152
149
'MI ' => '/^(5(0|[6-9])|63|67(?!59|6770|6774))\d*$/ ' ,
153
150
'MD ' => '/^(6759(?!24|38|40|6[3-9]|70|76)|676770|676774)\d*$/ ' ,
154
151
];
@@ -215,6 +212,8 @@ public function getVerificationRegEx()
215
212
'MC ' => '/^[0-9]{3}$/ ' ,
216
213
'AE ' => '/^[0-9]{4}$/ ' ,
217
214
'DI ' => '/^[0-9]{3}$/ ' ,
215
+ 'DN ' => '/^[0-9]{3}$/ ' ,
216
+ 'UN ' => '/^[0-9]{3}$/ ' ,
218
217
'SS ' => '/^[0-9]{3,4}$/ ' ,
219
218
'SM ' => '/^[0-9]{3,4}$/ ' ,
220
219
'SO ' => '/^[0-9]{3,4}$/ ' ,
0 commit comments