💫 정규표현식 (regular expression)
- 문자를 검사하고 싶을 때 사용하는 식
/abc/.test('abcdef') //true
abcdef라는 문자에 abc라는 단어가 있는지 검사
/[a-d]/.test('aefg') //true
/[가-다]/.test('다라마바') //true
[]
기호로 문자 범위 지정
[a-z]
: a부터 z까지 아무문자 하나를 의미함.
/[a-zA-Z]/.test('반가워요') //false
/[a-zA-Z]/.test('반가워요a') //true
/[ㄱ-ㅎ가-힣ㅏ-ㅣ]/.test('반가워요') //true
[a-zA-Z]
: 아무 알파벳 하나
[ㄱ-ㅎ가-힣ㅏ-ㅣ]
: 아무 한글 하나
/\S/.test('abcde') //true
\S
: 특수문자 포함 아무 문자 1개
/^a/.test('abcde') //true
/e$/.test('abcde') //true
^a
: a로 시작하는지 검사
e$
: e로 끝나는지 검사
/(e|f)/.test('abcde') //true
|
: or 기호, e 또는 f중 아무거나 한 문자가 있나 검사
정규식에서 괄호 사용 가능
/a+/
+
: 뒤에 오는 글자들도 a와 일치하면 반복해서 쭉 찾아달라는 뜻
/a/
: a를 다 찾으라는게 아니라 a 한개를 찾으라는 뜻
/\S+t/
\S+t
: 모든 문자 여러개 다음에 t라는 글자가 있냐를 검사
/\S+@\S+\.\S+/
\S+@\S+\.\S+
: 이메일 정규식
\.
: 마침표는 정규식에서 특수한 문법이기 때문에 마침표 문법을 쓰는게 아니라 진짜 마침표를 찾아달라라는 의미로 쓰려면 백슬래시를 앞에 붙여야함.
💫 폼 전송 시 이메일 형식 검증
var 입력한값 = idInput.value;
if ( !/\S+@\S+\.\S+/.test(입력한값) ){
alert('이메일 형식이 아닙니다.')
e.preventDefault();
}