<script>
let userEmail = prompt("이메일 주소는?", "");
let emailPattern = /^[\w.-]+@[\w.-]+\.(co\.kr|com|net)$/;
if(emailPattern.test(userEmail)) {
document.writeln(userEmail);
} else {
alert("이메일 형식이 잘못됐습니다.");
location.reload();
}
</script>
^
문자열의 시작을 의미합니다.
이메일의 처음부터 검사하겠다는 뜻이에요.
[\w.-]+
\w → 알파벳 대소문자 + 숫자 + 밑줄 ([A-Za-z0-9_])
. → 점 (.)
- → 하이픈 (-)
[] 안에 있으므로, 이 문자들 중 하나가 반복된다는 뜻
+ → 1개 이상
➡️ 예: user.name-123 같은 아이디 허용
@
문자 그대로 @ 기호를 의미합니다.
[\w.-]+
도메인 이름을 의미해요. 예: naver, google-mail, abc123
\.
문자 그대로 점(.)을 의미
정규식에서 점은 아무 문자 하나를 뜻하므로, 문자 그대로 쓰려면 \. 처럼 백슬래시로 이스케이프해야 해요.
(co.kr|com|net)
도메인 확장자 검사 부분
괄호는 그룹을 의미하며, |는 또는(or) 의미입니다. co\.kr처럼 점도 \.로 표시해야 해요.
$
문자열의 끝을 의미합니다.
즉, .com, .net, .co.kr 뒤에는 아무 것도 오면 안 됨