본문
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;
}
관련링크
댓글목록
등록된 댓글이 없습니다.