Подтвердить что ты не робот

JQuery найти тип кредитной карты

Я нашел эту простую функцию, чтобы вернуть 4 наиболее распространенных типа кредитных карт.

Будучи новичком в jQuery, какой плагин jQuery можно использовать для отображения типа кредитной карты в качестве типа пользователя в номере кредитной карты в поле ввода?

 function creditCardTypeFromNumber(num) {
   // first, sanitize the number by removing all non-digit characters.
   num = num.replace(/[^\d]/g,'');
   // now test the number against some regexes to figure out the card type.
   if (num.match(/^5[1-5]\d{14}$/)) {
     return 'MasterCard';
   } else if (num.match(/^4\d{15}/) || num.match(/^4\d{12}/)) {
     return 'Visa';
   } else if (num.match(/^3[47]\d{13}/)) {
     return 'AmEx';
   } else if (num.match(/^6011\d{12}/)) {
     return 'Discover';
   }
   return 'UNKNOWN';
 }

Спасибо!

4b9b3361

Ответ 1

$('#someTextBox').change(function() {
    $('#someOutput').text(creditCardTypeFromNumber($(this).val()));
});

Это выведет в некоторый элемент с id="someOutput" результат текстового поля, которое срабатывает, когда пользователь меняет текст в элементе id="someTextBox".

Ответ 2

http://www.ihwy.com/labs/jquery-validate-credit-card-extension.aspx

http://docs.jquery.com/Plugins/Validation/Methods/creditcard

Плагины по умолчанию могут не иметь подтверждения карты при вводе. Чтобы иметь возможность проверки в реальном времени, вы можете связать простой keyup() в поле ввода, чтобы проверка выполнялась после каждого нажатия клавиши.

Ответ 4

Кроме того, FYI, ответ на этот поток (ссылка) содержит некоторое регулярное выражение для других типов карт, а также удивительное объяснение номеров кредитных карт.

Здесь функция, которая запускается только после ввода не менее 6 цифр (те, которые используются для распознавания типа карты):

$('#CardNumber').keyup(function(){
   if($(this).val().length >= 6){
       cardType = creditCardTypeFromNumber($(this).val());
   }
});

Ответ 5

Используйте бесплатный сервис API BIN, например https://tripayments.com/bins/. Отправьте первые 6, и он предоставит "DetailCardProduct", который является VISA, Mastercard и т.д.