TDD μ‹€μŠ΅

김남경·2023λ…„ 1μ›” 31일

react

λͺ©λ‘ 보기
37/37

πŸ“— [].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");
    });
  }
});
profile
기본에 μΆ©μ‹€ν•˜λ©° μ•žμœΌλ‘œ λ°œμ „ν•˜λŠ”

0개의 λŒ“κΈ€