1 | <?php |
||
7 | class CreditCardDetector |
||
8 | { |
||
9 | private static $cardPatterns = array( |
||
10 | CreditCard::VISA => '/^4\d{12}(\d{3})?$/', |
||
11 | CreditCard::MASTER => '/^((5[1-5]\d{4}|677189)\d{10})|(2(?:2(?:2[1-9]|[3-9]\d)|[3-6]\d\d|7(?:[01]\d|20))-?\d{4}-?\d{4}-?\d{4})$/', |
||
12 | CreditCard::DISCOVER => '/^6(?:011\d{12}|5\d{14}|4[4-9]\d{13}|22(?:1(?:2[6-9]|[3-9]\d)|[2-8]\d{2}|9(?:[01]\d|2[0-5]))\d{10})$/', |
||
13 | CreditCard::UNIONPAY => '/^62[0-9]\d{13,16}$/', |
||
14 | CreditCard::AMEX => '/^3[47]\d{13}$/', |
||
15 | CreditCard::DINERS_CLUB => '/^(3((?:0[0-5])|(?:09)|(?:6[0-9])|(?:8[0-9])|(?:9[0-9]))\d{11}|2014\d{11}|2149\d{11})$/', |
||
16 | CreditCard::JCB => '/^35(28|29|[3-8]\d)\d{12}$/', |
||
17 | CreditCard::DANKORT => '/^5019\d{12}$/', |
||
18 | CreditCard::MAESTRO => '/(?:5018|5020|5038|5612|5893|6304|6759|6761|6762|6763|0604|6390)[0-9]{8,15}/', |
||
19 | CreditCard::FORBRUGSFORENINGEN => '/^600722\d{10}$/', |
||
20 | CreditCard::LASER => '/^(6706|6771|6709)\d{8}(\d{4}|\d{6,7})?$/', |
||
21 | CreditCard::SWITCH_BRAND => '/^6759\d{12}(\d{2,3})?$/', |
||
22 | CreditCard::SOLO => '/^6767\d{12}(\d{2,3})?$/', |
||
23 | |||
24 | ); |
||
25 | |||
26 | public function detect($number) |
||
36 | } |
||
37 |