Vbscript 电子邮件验证服务器端
我正在尝试验证电子邮件,但我的代码不允许出现一些情况 代码Vbscript 电子邮件验证服务器端,vbscript,asp-classic,Vbscript,Asp Classic,我正在尝试验证电子邮件,但我的代码不允许出现一些情况 代码 pvm=“bw。stack@domain.com“不行 pvm=”user@gmail.com“-工作 如果Len(pvm)
pvm=“bw。stack@domain.com“不行
pvm=”user@gmail.com“-工作
如果Len(pvm)<5或Instr(1,pvm,“”)=0或Instr(1,pvm,“@”,1)小于2或InStrRev(pvm,“.”)小于Instr(1,pvm,“@”,1),则
blnEmailOKREG=错误
其他的
blnEmailOKREG=真
如果结束
这是一个相当好的电子邮件地址有效性设置。但请注意,很难获得完全“全知”的验证
' Function IsValidEmail
' Method checks if a string value is a valid email adress
' @Param val: <string> String containing email adress.
' @RETURN: True / False
Public function IsValidEmail(ByRef val)
IsValidEmail = RegExTest(val,"^[_a-zA-Z0-9-""'\/]+(\.[_a-zA-Z0-9-""'\/]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$")
end function
看起来它不允许用户部分使用
+
字符(这是常见的),并且每次有人提出一个长度超过3个字符的新TLD时都需要更新。好的电子邮件地址验证是困难的,但目标是错误的通过,而不是拒绝真实的电子邮件地址。@Quentin。是的,你说得对。我做了一些研究,要用IPv6验证电子邮件地址,转义字符、域别名等会导致我所在的整个地区停电。所以我放弃了这一点,只选择了最常见的验证,再加上电子邮件验证(发送电子邮件并检查回复)。由于我们的web应用程序中的用户数量有限,我们可以手动处理任何验证错误。谢谢,我刚刚完全删除了它,因为它对某些地址来说是一个麻烦。
' Function IsValidEmail
' Method checks if a string value is a valid email adress
' @Param val: <string> String containing email adress.
' @RETURN: True / False
Public function IsValidEmail(ByRef val)
IsValidEmail = RegExTest(val,"^[_a-zA-Z0-9-""'\/]+(\.[_a-zA-Z0-9-""'\/]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$")
end function
Public function RegexTest(str, pattern)
dim m_objRegex
set m_objRegex = New RegExp
m_objRegex.Pattern = pattern
m_objRegex.Global = True
RegExTest = m_objRegex.Test(str)
set m_objRegex = nothing
End function