如何判断电子邮件的地址格式是否正确

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何判断电子邮件的地址格式是否正确?

我在网站上设置了邮件列表功能,实现用户自动订阅和发送,但很多用户输入和提交的邮件地址格式都是无效的,无法处理。请问如何解决这一问题?

我们可用下列办法来解决这一问题——但只是能够判断每个电子邮件地址的格式是否有效,并不能保证该地址确实存在。

第一种办法:

<%

FunctionIsValidEmail(Email)

ValidFlag=False

If(Email<>"")And(InStr(1,Email,"@")>0)And(InStr(1,Email,".")>0)Then

atCount=0

SpecialFlag=False

ForatLoop=1ToLen(Email)

atChr=Mid(Email,atLoop,1)

IfatChr="@"ThenatCount=atCount+1

If(atChr>=Chr(32))And(atChr<=Chr(44))ThenSpecialFlag=True

If(atChr=Chr(47))Or(atChr=Chr(96))Or(atChr>=Chr(123))ThenSpecialFlag=True

If(atChr>=Chr(58))And(atChr<=Chr(63))ThenSpecialFlag=True

If(atChr>=Chr(91))And(atChr<=Chr(94))ThenSpecialFlag=True

Next

If(atCount=1)And(SpecialFlag=False)Then

BadFlag=False

tAry1=Split(Email,"@")

UserName=tAry1(0)

DomainName=tAry1(1)

If(UserName="")Or(DomainName="")ThenBadFlag=True

IfMid(DomainName,1,1)="."thenBadFlag=True

IfMid(DomainName,Len(DomainName),1)="."thenBadFlag=True ValidFlag=True

'格式正确返回Ture

EndIf

EndIf

IfBadFlag=TrueThenValidFlag=False

'格式不正确返回False

IsValidEmail=ValidFlag

EndFunction

%>

第二种办法:

<%

functionIsValidEmail(email)

dimnames,name,i,c

IsValidEmail=true

names=Split(email,"@")

ifUBound(names)<>1then

IsValidEmail=false

exitfunction

endif

foreachnameinnames

ifLen(name)<=0then

IsValidEmail=false

exitfunction

endif

fori=1toLen(name)

c=Lcase(Mid(name,i,1))

ifInStr("abcdefghijklmnopqrstuvwxyz_-.",c)<=0andnot IsNumeric(c)then

IsValidEmail=false

exitfunction

endif

next

ifLeft(name,1)="."orRight(name,1)="."then IsValidEmail=false

exitfunction

endif

next

ifInStr(names(1),".")<=0then

IsValidEmail=false

exitfunction

endif

i=Len(names(1))-InStrRev(names(1),".")

ifi<>2andi<>3then

IsValidEmail=false

exitfunction

endif

ifInStr(email,"..")>0then

IsValidEmail=false

endif

endfunction

%>

第三种办法,用下面这个函数进行判断。它会检查邮件地址是否含有“@”,以及“.”是否在“@”后面:

functionisEmail(pInString)

lAt=False

lDot=false

forx=2tolen(pInstring)-1

ifmid(pInString,x,1)="@"thenlAt=True

ifmid(pInString,x,1)="."andlAt=TruethenlDot=True

next

iflAt=TrueandlDot=Truethen

isEmail=True

else

isEmail=False

endif

endfunction

相关文档
最新文档