我正在研究卡类型检测器。我找不到某些签证和MC子产品的编号范围,例如V-PAY和MC / BC(bancontact)。这些卡类型有正则表达式
function detectCardType(number) {
var re = {
electron: /^(4026|417500|4405|4508|4844|4913|4917)\d+$/,
maestro: /^(5018|5020|5038|5612|5893|6304|6759|6761|6762|6763|0604|6390)\d+$/,
dankort: /^(5019)\d+$/,
interpayment: /^(636)\d+$/,
unionpay: /^(62|88)\d+$/,
visa: /^4[0-9]{12}(?:[0-9]{3})?$/,
mastercard: /^5[1-5][0-9]{14}$/,
amex: /^3[47][0-9]{13}$/,
diners: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,
discover: /^6(?:011|5[0-9]{2})[0-9]{12}$/,
jcb: /^(?:2131|1800|35\d{3})\d{11}$/
}
for(var key in re) {
if(re[key].test(number)) {
return key
}
}
}
现在我需要为V-PAY和MC / BC添加正则表达式。谢谢
答案 0 :(得分:0)
1)V-PAY识别是EMV / NFC卡的应用级别,即使用的卡AID。
2)使用这些正则表达式识别卡类型只能为您提供高级解决方案,而没有100%的准确性。联名卡和BIN的交叉点不能用这种方式覆盖。
3)根据Visa终端集成指南要求4.17,一旦您的终端(或任何解决方案)接受除Visa以外的其他卡品牌-V-PAY卡必须作为Visa Electron处理。
如果您无法查找用过的Card AID,则将V-PAY和Visa Electron一起检测为Electron。