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';
}
Спасибо!
Ответы
Ответ 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() в поле ввода, чтобы проверка выполнялась после каждого нажатия клавиши.
Ответ 3
jQuery Тип плагина детектора кредитной карты https://github.com/christianreed/Credit-Card-Type-Detector
Ответ 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 и т.д.