当前位置: 首页 > 图文教程 > 网络编程 > 编程10000问 > 如何判断电子邮件的地址格式是否正确?

编程10000问
如何用POP3接收电子邮件?
如何用组件实现自动发送电子邮件?
如何编写翻页函数?
如何分页显示数据库查询结果?
如何实现全文检索?
如何用FileSystemObject组件来做一个站内搜索?
如何做一个文本搜索?
如何做一个只搜索本网站的引擎?
如何实现歌曲在线点播?
如何实现网上考试?
网上考试设计思路是怎样的?
可以让程序告诉我详细的页面错误和数据库连接错误吗?
如何把Recordset转换成彩色的XML文件
如何把URL和邮件地址转换为超级链接?
如何把一个Excel文件放到ASP页面中去?
如何把中文转换为UNICODE?
如何编写TOP 10之类的排行榜?
如何动态添加Form项?
如何读取一个.ini文件?
如何计算ASP页面的载入时间?

编程10000问 中的 如何判断电子邮件的地址格式是否正确?


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 162 ::
收藏到网摘: n/a

第一种办法:

<%

Function IsValidEmail(Email)

ValidFlag = False

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

atCount = 0

SpecialFlag = False

For atLoop = 1 To Len(Email)

atChr = Mid(Email, atLoop, 1)

If atChr = "@" Then atCount = atCount + 1

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

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

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

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

Next

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

BadFlag = False

tAry1 = Split(Email, "@")

UserName = tAry1(0)

DomainName = tAry1(1)

If (UserName = "") Or (DomainName = "") Then BadFlag = True

If Mid(DomainName, 1, 1) = "." then BadFlag = True

If Mid(DomainName, Len(DomainName), 1) = "." then BadFlag = True

ValidFlag = True

' 格式正确返回Ture

End If

End If

If BadFlag = True Then ValidFlag = False

' 格式不正确返回False

IsValidEmail = ValidFlag

End Function

%>

第二种办法:

<%
function IsValidEmail(email)
dim names, name, i, c
IsValidEmail = true
names = Split(email, "@")
if UBound(names) <> 1 then
IsValidEmail = false
exit function
end if
for each name in names
if Len(name) <= 0 then
IsValidEmail = false
exit function
end if
for i = 1 to Len(name)
c = Lcase(Mid(name, i, 1))
if InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 and not
IsNumeric(c) then
IsValidEmail = false
exit function
end if
next
if Left(name, 1) = "." or Right(name, 1) = "." then
IsValidEmail = false
exit function
end if
next
if InStr(names(1), ".") <= 0 then
IsValidEmail = false
exit function
end if
i = Len(names(1)) - InStrRev(names(1), ".")
if i <> 2 and i <> 3 then
IsValidEmail = false
exit function
end if
if InStr(email, "..") > 0 then
IsValidEmail = false
end if
end function
%>
第三种办法,用下面这个函数进行判断。它会检查邮件地址是否含有“@”,以及“.”是否在@”后面:

function isEmail(pInString)

lAt = False
lDot = false
for x = 2 to len(pInstring)-1
if mid(pInString,x,1) = "@" then lAt = True
if mid(pInString,x,1) = "." and lAt = True then lDot = True
next
if lAt = True and lDot = True then
isEmail = True
else
isEmail = False
end if
end function

[1]