회원가입 API 기능을 구현하기 위한 시도중에 이메일 제한조건에 대한 정규식 소스코드를 만들던 중에 테스트의 오류가 있는 경우를 발췌하였다.
나뿐만이 아닌 초기에 개발자가 되기위한 초심자에게 어쩌면 필요할지도 모르는 내용이겠다.(구글링을 했을때는 stack of flow에서 영문으로 확인하는데 나는 어려움이 있어서 애좀 먹었다.)
https://regexr.com/
이 홈페이지를 이용하면 이러한 화면으로 내가 갖고자 하는 정규식이 정상적으로 작동할 수 있는지 테스트 할 수 있다.
위의 정규식은 @ 와 . 이 0개 이상 있어야 하고 그 사이에 각 숫자와 소문자 대문자열에 대하여 작성하는 범위를 나타냈다.
자세한 표기방법은 다른 기술 블로그에 많을테니 생략하겠다.("이메일 정규식"이라는 내용으로 구글링을 해도 충분히 나오는 내용들이다.)
아래 이미지정도로 참고해보자.
$ /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
*참고사항 : /i
는 정규표현식에 사용된 패턴이 대소문자를 구분하지 않도록 i를 사용하는 의미이다.
여기서 이메일 정규식의 경우 다른 정규식들과 차이점(?)이 하나있다.
비밀번호나 전화번호와는 다르게 정규식 표현에 "/"슬래시
가 있다는 점이다.
슬래시가 있게되면 정규식에서는 이를 해결하기 위한 escape가 필요하다는 것이다.
escape에 대한 이해가 필요한데 이는 지금 좀 더 나도 공부가 필요한 부분이다.
이부분은 다시 언급할 기회가 있을 것 같다.
그리고 비밀번호나 전화번호와 같은 번호위주의 일반적인(?) 형식에 대해서는 이를 문자열""로 표현해도 정규식이 먹히는 반면에 내가 시도했을때는 이메일에 대한 정규식에선 문자열로하게되면 진행이 되지 않았었다..
그렇게 바보같이 두시간을 멍청하게 삽질하다가 찾게된 결과...
⬆️stackodflow에서의 내용.
('regular expression email validation error javascript'로 구글링)
그렇게 해결...😇