사이트 내 전체검색
[javascript] 이메일이 올바른지 체크 스크립트
로빈아빠
https://cmd.kr/javascript/565 URL이 복사되었습니다.

본문

function emailCheck (emailStr) {
 // Email check 함수
 var emailPat=/^(.+)@(.+)$/
 var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
 var validChars="\[^\\s" + specialChars + "\]"
 var firstChars=validChars
 var quotedUser="(\"[^\"]*\")"
 var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
 var atom="(" + firstChars + validChars + "*" + ")"
 var word="(" + atom + "|" + quotedUser + ")"
 var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
 var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


 var matchArray=emailStr.match(emailPat)
 if (matchArray==null) {
  alert("e-mail 주소가 정확하지 않습니다.\n @ 와 . 을 확인하십시오")
  return false
 }
 var user=matchArray[1]
 var domain=matchArray[2]

 if (user.match(userPat)==null) {
  alert("메일 아이디가 정확한 것 같지 않습니다.")
  return false
 }

 var IPArray=domain.match(ipDomainPat)
 if (IPArray!=null) {
  for (var i=1;i<=4;i++) {
  if (IPArray[i]>255) {
  alert("IP가 정확하지 않습니다.")
  return false
 }
 }
 return true
 }

 var domainArray=domain.match(domainPat)

 if (domainArray==null) {
  alert("도메인 이름이 정확한 것 같지 않습니다.")
  return false
 }
 var atomPat=new RegExp(atom,"g")
 var domArr=domain.match(atomPat)
 var len=domArr.length

 if (domArr[domArr.length-1].length<2 ||
  domArr[domArr.length-1].length>3) {
  alert("도메인명의 국가코드는 2자보다 크고 3자보다 작아야 합니다.")
  return false
 }

 if (domArr[domArr.length-1].length==2 && len<3) {
  var errStr="This address ends in two characters, which is a country"
  errStr+=" code. Country codes must be preceded by "
  errStr+="a hostname and category (like com, co, pub, pu, etc.)"
  alert(errStr)
  return false
 }

 if (domArr[domArr.length-1].length==3 && len<2) {
  var errStr="이 주소는 호스트명이 일치하지 않습니다."
  alert(errStr)
  return false
 }
 return true;
}

댓글목록

등록된 댓글이 없습니다.

831 (8/17P)

Search

Copyright © Cmd 명령어 3.133.157.231