토스와 결제 시스템 구축중에 카드 종류를 체크할 일이 생겨서
글을 작성해봅니다.
다음은 자바스크립트를 사용하여 카드 종류를 체크하는 예시입니다.
// 카드 번호 유효성 검사 및 카드 종류 체크
function checkCardType(cardNumber) {
// 카드 번호 유효성 검사
if (/[^0-9-\s]+/.test(cardNumber)) {
return "invalid";
}
// 카드 종류 체크
if (/^4/.test(cardNumber)) {
return "Visa";
} else if (/^5[1-5]/.test(cardNumber)) {
return "MasterCard";
} else if (/^3[47]/.test(cardNumber)) {
return "American Express";
} else if (/^(?:2131|1800|35\d{3})\d{11}$/.test(cardNumber)) {
return "JCB";
} else {
return "unknown";
}
}
// 사용 예시
console.log(checkCardType("4111111111111111")); // Visa
console.log(checkCardType("5555555555554444")); // MasterCard
console.log(checkCardType("378282246310005")); // American Express
console.log(checkCardType("30569309025904")); // Diners Club
console.log(checkCardType("2131123456789012345")); // JCB
console.log(checkCardType("1234567890123456")); // unknown
위 소스와 같이 간단하게 정규식으로 구현하는 방법 외에도
다양한 라이브러리들도 있습니다.
card-validator: https://github.com/braintree/card-validator
credit-card-type: https://github.com/braintree/credit-card-type
card-info: https://github.com/duo-labs/credit-card-info-js
card.js: https://github.com/jessepollak/card
bradfrost: https://bradfrost.com/blog/post/single-field-credit-card-input-pattern/
위 라이브러리들은 각각 다양한 기능을 제공하며, 카드 번호 유효성 검사와 카드 종류 체크 외에도, 카드 번호 마스킹, 카드 회사 로고 출력 등의 기능을 제공하기도 합니다. 필요에 따라 적절한 라이브러리를 선택하여 사용하시면 됩니다.