π [].indexOf(cardLength) > -1
//a === 1 || b === 1 μ€μ΄κΈ°
cardNumber[0] === '4' && ([13,16,19].indexOf(cardLength) > -1)
π μ«μ λ²μ
//a === 51 || b === 52 || c === 53 μ€μ΄κΈ°
(Number(cardNumberTwo) >= 51 && Number(cardNumberTwo) <= 55) && cardLength === 16
π μ κ·μ
let cardNumberTwo = cardNumber.substr(0, 2);
let cardNumberThree = cardNumber.substr(0, 3);
let cardNumberFour = cardNumber.substr(0, 4);
let cardLength = cardNumber.length;
//(cardNumberTwo === "38" || cardNumberTwo === "39") && cardLength === 14
if(cardNumber.match(/^3[89]\d{12}$/g)) {
return "a";
}
//(cardNumberTwo === "34" || cardNumberTwo === "37") && cardLength === 15
else if (cardNumber.match(/^3[47]\d{13}$/g)) {
return "b";
}
//cardNumber[0] === '4' && ([13,16,19].indexOf(cardLength) > -1
else if(cardNumber.match(/^4/g)) {
if([13, 16, 19].indexOf(cardNumber.length) > -1) return "c";
}
//Number(cardNumberTwo) >= 51 && Number(cardNumberTwo) <= 55 && cardLength === 16
else if(cardNumber.match(/^5[1-5]\d{14}$/g)) {
return "d";
}
//cardNumberTwo === '65' || cardNumberFour === '6011' || (Number(cardNumberThree) >= 644 && Number(cardNumberThree) <= 649) && ([16,19].indexOf(cardLength) > -1)
else if(cardNumber.match(/65|6011|64[4-9]/g)){
if([16, 19].indexOf(cardNumber.length) > -1) return "e";
}
π testλ΄μμλ forλ¬Έ κ°λ₯
describe("e", function() {
let should = chai.should();
for (let i = 644; i <= 649; i++) {
it(`has a prefix of ${i} and a length of 16`, function() {
should.equal(detectNetwork(`${i}1234567890123`), "Discover");
});
it(`has a prefix of ${i} and a length of 19`, function() {
should.equal(detectNetwork(`${i}1234567890123456`), "Discover");
});
}
});