Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const cards = [
- {
- type: 'amex',
- pattern: /^3[47]/
- },
- {
- type: 'dankort',
- pattern: /^5019/
- },
- {
- type: 'hipercard',
- pattern: /^(384100|384140|384160|606282|637095|637568|60(?!11))/,
- },
- {
- type: 'dinersclub',
- pattern: /^(36|38|30[0-5])/
- },
- {
- type: 'discover',
- pattern: /^(6011|65|64[4-9]|622)/
- },
- {
- type: 'jcb',
- pattern: /^35/
- },
- {
- type: 'laser',
- pattern: /^(6706|6771|6709)/
- },
- {
- type: 'maestro',
- pattern: /^(5018|5020|5038|6304|6703|6708|6759|676[1-3])/
- },
- {
- type: 'mastercard',
- pattern: /^(5[1-5]|677189)|^(222[1-9]|2[3-6]\d{2}|27[0-1]\d|2720)/
- },
- {
- type: 'unionpay',
- pattern: /^62/
- },
- {
- type: 'visaelectron',
- pattern: /^4(026|17500|405|508|844|91[37])/
- },
- {
- type: 'elo',
- pattern: /^(4011(78|79)|43(1274|8935)|45(1416|7393|763(1|2))|50(4175|6699|67[0-7][0-9]|9000)|627780|63(6297|6368)|650(03([^4])|04([0-9])|05(0|1)|4(0[5-9]|3[0-9]|8[5-9]|9[0-9])|5([0-2][0-9]|3[0-8])|9([2-6][0-9]|7[0-8])|541|700|720|901)|651652|655000|655021)/
- },
- {
- type: 'visa',
- pattern: /^4/
- }
- ]
- const findCardByNumber = (number) => {
- const num = (number + '').replace(/\D/g, '')
- return cards.find(({pattern}) => pattern.test(num))
- }
- console.log('returns amex card', findCardByNumber('378282246310005'))
- console.log('returns amex card', findCardByNumber('371449635398431'))
- console.log('returns amex card', findCardByNumber('378734493671000'))
- console.log('')
- console.log('returns dankort card', findCardByNumber('5019123456789013'))
- console.log('')
- console.log('returns dinersclub card', findCardByNumber('30569309025904'))
- console.log('returns dinersclub card', findCardByNumber('38520000023237'))
- console.log('')
- console.log('returns discover card', findCardByNumber('6011111111111117'))
- console.log('returns discover card', findCardByNumber('6011000990139424'))
- console.log('')
- console.log('returns jcb card', findCardByNumber('3530111333300000'))
- console.log('returns jcb card', findCardByNumber('3566002020360505'))
- console.log('')
- console.log('returns mastercard card', findCardByNumber('5555555555554444'))
- console.log('returns mastercard card', findCardByNumber('2221000010000015'))
- console.log('')
- console.log('returns visa card', findCardByNumber('4111111111111111'))
- console.log('returns visa card', findCardByNumber('4012888888881881'))
- console.log('returns visa card', findCardByNumber('4222222222222'))
- console.log('returns visa card', findCardByNumber('4000 0000 0000 0000 030'))
- console.log('')
- console.log('returns visaelectron card', findCardByNumber('4917300800000000'))
- console.log('')
- console.log('returns unionpay card', findCardByNumber('6271136264806203568'))
- console.log('returns unionpay card', findCardByNumber('6236265930072952775'))
- console.log('returns unionpay card', findCardByNumber('6204679475679144515'))
- console.log('returns unionpay card', findCardByNumber('6216657720782466507'))
- console.log('')
- console.log('returns mastro card', findCardByNumber('6759649826438453'))
- console.log('returns mastro card', findCardByNumber('6759 4111 0000 0008'))
- console.log('returns mastro card', findCardByNumber('6759 6498 2643 8453'))
- console.log('')
- console.log('returns hipercard card', findCardByNumber('6062821086773091'))
- console.log('returns hipercard card', findCardByNumber('6375683647504601'))
- console.log('returns hipercard card', findCardByNumber('6370957513839696'))
- console.log('returns hipercard card', findCardByNumber('6375688248373892'))
- console.log('returns hipercard card', findCardByNumber('6012135281693108'))
- console.log('returns hipercard card', findCardByNumber('38410036464094'))
- console.log('returns hipercard card', findCardByNumber('38414050328938'))
Add Comment
Please, Sign In to add comment