관리 메뉴

nkdk의 세상

JS :: 올바른 이메일형식 검증 본문

My Programing/HTML and JavaScript

JS :: 올바른 이메일형식 검증

nkdk 2008. 6. 16. 10:23

조건설정
이메일을 판별하는 기준은 다음과 같습니다.

  • |설명|   [@]가 첫번째 나온 경우
    • |예제|   @naver.com
      • |설정|   [@]의 인덱스값이 0
  • |설명|   [.]가 마지막에 나온 경우
    • |예제|   @navercom.
      • |설정|   [.]의 인덱스값+1이 총글자수와 같다.
  • |설명|   [@]가 없는 경우
    • |예제|   eggnaver.com
      • |설정|   [@]의 인덱스값이 -1
  • |설명|   [.]가 없는 경우
    • |예제|   egg@navercom
      • |설정|   [.]의 인덱스값이 -1
  • |설명|   [@]앞에 [.]가 나오거나 붙은 경우
    • |예제|   egg.@naver
      • |설정|   [@]의 인덱스값이 [.]의 인덱스-1값과 같거나 크다.

<html>
<script language="JavaScript">
<!--

function check_mail(email) {
var aIndex = email.value.indexOf("@");
if (aIndex == 0) {  // [@]가 처음에 위치한다.
  alert("메일 입력형식이 올바르지 않습니다.");
  email.focus();
  return false;
}
var dotIndex = email.value.indexOf('.');
var len = email.value.length;

if (len == (dotIndex+1)) {  // '.'가 마지막에 위치한다.
  alert("메일 입력형식이 올바르지 않습니다.");
  email.focus();
  return false;
}

  if (aIndex == -1 || dotIndex == -1 || aIndex >= (dotIndex-1)) {  // '@'나 '.'가 없거나 '@'가 '.'뒤에 위치하거나 붙어있다면
  alert("메일 입력형식이 올바르지 않습니다.");
  email.focus();
  return false;
}
return true;
}
// -->
</script>
<body onload="frm1.email.focus()">
<table border=1 cellpadding=2 bordercolor="#aaccee">
<form name="frm1" method="post" onsubmit="return check_mail(frm1.email)">

<tr>
<td width=70 bgcolor="#bbddff" align="center"> 이메일 </td>
<td width=270 bgcolor="#cceeff" align="center">
  <input type="text" name="email" maxlength=28 size=28>
  <input type="submit" value="확인">
</td>

</form>
</table>
</body>
</html>