include와 정규식
지난번에 input에 공백을 검사했었는데 이메일 형식을 검사해보자.
'문자'.includes('찾을단어');
이렇게 하면 입력된 값에 원하는 문자가 있는지 찾아준다.
있다면 true 없다면 false 반환
하지만
-한글이 있는지?
-영어가 있는지?
-특정 단어로 끝나는지?
-@ 다음에 영어가 있는지?
이런것은 includes()만으로 검사하기 어렵다.
정규표현식(regular expression)
정규표현식은 문자를 검사하고 싶을 때 사용하는 식
어떤 문자에 'naver'라는 단어가 들어가 있냐 확인하고 싶을 때 이렇게 쓴다.
/naver/.test('id@naver.com');
// 영어 정규표현식
/[a-zA-Z]/.test('영어가 있는지 확인해줘');
// 한글 정규표현식
/[ㄱ-ㅎ가-힣ㅏ-ㅣ]/.test('한글이 있는지 확인해줘');

하지만 우리가 정규표현식을 처음부터 다 짠다는 것은 비효율적이다.
구글 선생님은 모든 것을 알고 있다.
//이메일 정규식
/[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]$/i
//이메일 정규식 업그레이드 (특수문자중 . - _ 가능)
/^([\w\.\_\-])*[a-zA-Z0-9]+([\w\.\_\-])*([a-zA-Z0-9])+([\w\.\_\-])+@([a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,8}$/i
//정규식을 적용해보자
var regExp = /^([\w\.\_\-])*[a-zA-Z0-9]+([\w\.\_\-])*([a-zA-Z0-9])+([\w\.\_\-])+@([a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,8}$/i;
if(!regExp.test($('#email').val())){
alert("이메일 형식을 확인하세요");
e.preventDefault();
}
내가 계속 구글에 검색하고 그 결과를 보여주는 이유?
단순히 정제된 지식 정리된 자료만 가지고 배우다 보면
실제로 업무에서 난관에 부딪혔을 때
어 ? 나 배운적 없는건데 근데 어떻게 해결하지? 이렇게 되버린다.
구글 , stackoverflow , okky 등 다양한 곳에서 검색하고
그걸 내 코드에 적용하는 것도 실력이다.
심지어 ChatGPT도 마찬가지다.
좋은 자료를 검색하고 단순 복붙이 아니라 내 코드에 잘 적용하는 것이 실력이다.
Last updated