출처: http://blog.empas.com/ganemochi/11897983

<SCRIPT LANGUAGE="JavaScript">
        function chk(form) {
         re=/^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;

                if(form.email.value.length<6 || !re.test(form.email.value)) {
                        alert("메일형식이 맞지 않습니다.");
                        form.email.value="";
                        form.email.focus();
                } else {
                        alert("제대로된 형식");
                }
        }
</script>

<form name="form1">
        <input type="text" name="email"><input type="button" value="체크" onclick="chk(this.form)">
</form>

^[0-9a-zA-Z]                --> 첫글자는 숫자또는 영문자
[-_.]?                           --> - 또는 _ 또는 . 이 0번 또는 1번  .은 특수문자 이므로 . 으로
[0-9a-zA-Z]                 --> 숫자또는 영문자
([-_.]?[0-9a-zA-Z])*@ --> @ 앞에(-,_,. 이 0~1번, 그 뒤에는 숫자,영문자)이 한번 또는 여러번
[0-9a-zA-Z]                --> @ 뒤에는 숫자 또는 영문자
[-_.]?                          --> - 또는 _ 또는 . 이 0번 또는 1번
([-_.]?[0-9a-zA-Z])*.   --> . 앞에(-,_,. 이 0~1번, 그 뒤에는 숫자,영문자)이 한번 또는 여러번
[a-zA-Z]{2,3}$             --> . 뒤 마지막 문자열은 영문자가 2~3개