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

更新时间:2023-05-12 10:40:42 阅读: 评论:0

如何判断电子邮件的地址格式是否正确?
我在网站上设置了邮件列表功能,实现用户自动订阅和发送,但很多用户输入和提交的邮件地址格式都是无效的,无法处理。请问如何解决这一问题?
    我们可用下列办法来解决这一问题——但只是能够判断每个电子邮件地址的格式是否有效,并不能保证该地址确实存在。
第一种办法:
<%
Function IsValidEmail(Email)
ValidFlag = Fal
If (Email <> "") And (InStr(1, Email, "@") > 0) And (InStr(1, Email, ".") > 0) Then
atCount = 0
SpecialFlag = Fal
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 = Fal) Then
BadFlag = Fal
tAry1 = Split(Email, "@")
UrName = tAry1(0)
DomainName = tAry1(1)
If (UrName = "") 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 = Fal
' 格式不正确返回Fal
IsValidEmail = ValidFlag
End Function
%>
    第二种办法:
<%
function IsValidEmail(email)

dim names, name, i, c

IsValidEmail = true
names = Split(email, "@")
if UBound(names) <> 1 then
  IsValidEmail = fal
  exit function
end if
for each name in names
  if Len(name) <= 0 then
    IsValidEmail = fal
    exit function
  end if
  for i = 1 to Len(name)
    c = Lca(Mid(name, i, 1))
    if InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 and not
IsNumeric(c) then
      IsValidEmail = fal
      exit function
    end if
  next
  if Left(name, 1) = "." or Right(name, 1) = "." then
      IsValidEmail = fal
      exit function
  end if
next
if InStr(names(1), ".") <= 0 then
  IsValidEmail = fal
  exit function
end if
i = Len(names(1)) - InStrRev(names(1), ".")
if i <> 2 and i <> 3 then
  IsValidEmail = fal
  exit function
end if
if InStr(email, "..") > 0 then
  IsValidEmail = fal
end if

end function
%>

    第三种办法,用下面这个函数进行判断。它会检查邮件地址是否含有“@”,以及“.”是否在@”后面:
function isEmail(pInString)
  lAt = Fal
  lDot = fal
 
  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
  el
    isEmail = Fal
  end if
end function

本文发布于:2023-05-12 10:40:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/598332.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:地址   解决   格式   是否   用户
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图