IT/프로그래밍

[JS] 휴대전화번호 정규식

홀롤록 2021. 4. 9. 16:38
반응형

오랜만에 작성하는 블로그!
이유는.. 뭘 써야할 지 잘 몰랐어서 안쓰다가 오늘 간만에 쓰게 됐습니다.

최근 TDD 를 통해 회사 프로젝트를 구성하고 실행해 보고 있습니다. 그러면서 테스트 케이스를 작성하게 되는데

그 중 일부를 발췌해 작성해봅니다~

업무를 할 때마다 늘 마주치는 휴대전화번호 입력 그리고 생년월일 입력이 있습니다.

 

const { expect, assert } = require('chai');

describe('정규식 테스트 진행', () => {
	it('휴대전화번호 정규식 테스트', () => {
    	/**
         * 조건, 휴대전화번호만 전달되는 경우, 하이픈이 같이 들어오는 경우
         * 휴대전화번호 맨 앞자리는 지금은 010으로 통합됐으나, 이전엔 아니었음.
         * 010, 011, 012, 016, 017, 018, 019 가 있음. (알기로는) 
         * 중간자리는 3~4 자리로 고정.
	 * 맨 뒷 자리는 4자리로 고정.
         */
         
        const regexpPhone = /(01[0|1|2|6|7|8|9])-?([\d]{3,4})-?([\d]{4})/;
    	const testPhoneNumbers = [
          '010-1111-2222',
          '010-111-222',
          '01011112222',
          '010111222',
          '017-1111-2222',
          '013-1111-2222',
          '011-1111-2222',
          '013-111-122',
          '014-111-2323',
          '019-111-2323',
          '02-1234-1234',
      	];

        for (const phoneNumber of testPhoneNumbers) {
          expect(regexpPhone.test(phoneNumber), `${phoneNumber} test valid`).to.equal(true);
          assert.equal(regexpPhone.test(phoneNumber), true, `${phoneNumber} test valid`);
        }
      });

})

위 내용을 토대로 실행해보면 013 이 들어간 내용, 맨 뒷자리가 3자리경우 가 테스트 케이스에 잡히게 되고, 02 또한 false 로 나올 겁니다.

이는 조건부대로 잘 실행된 것이므로 정상적인 경우입니다~

( 만일 안심번호에 대해 제가 작업을 하게 되면 또 올리겠지만 필요하시다면 메일 혹은 답글로 남겨주세요~ )

 

반응형