在用ASP编写页面时,如果涉及到邮件发送,一般会要求输入Email地址。错误的Email地址往往带来许多不必要的麻烦,用下面的函数IsValidEmail就能判断出一个Email地址是否有效。
函数源代码:
<%
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
End If
End If
If BadFlag = True Then ValidFlag = False
IsValidEmail = ValidFlag
End Function
%>
用法举例:
IsValidEmail("my_263_email@263.net") 返回Ture
IsValidEmail("zh99wj@tonghua.com.cn") 返回Ture
IsValidEmail("myemail263.net") 返回False
IsValidEmail("my_263_email@263) 返回False
请注意,函数只是判断Email地址格式是否有效,但并不能检查该地址是否确实存在。
判断email
<%
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 strlen(str)
ON ERROR RESUME NEXT
dim WINNT_CHINESE
WINNT_CHINESE = (len("论坛")=2)
if WINNT_CHINESE then
dim l,t,c
dim i
l=len(str)
t=l
for i=1 to l
c=asc(mid(str,i,1))
if c <0 then c=c+65536
if c>255 then
t=t+1
end if
next
strlen=t
else
strlen=len(str)
end if
if err.number <>0 then err.clear
end function
%>
别人刚发的帖子拿来的,应该能用的,试试吧
var reg_qq=/^\d{5,11}$/;
var reg_email=/^[0-9A-Za-z_]{1,}@[0-9A-Za-z_]{1,}\.[0-9A-Za-z]{1,}$/;
var reg_tel=/^\d{3,4}-\d{1,}$/;
var reg_mobile=/^1\d{10}$/;
var reg_adcode=/^\d{6}$/;
var reg_address=/^\S{10,}$/;
var reg_yan=/^\d{4}$/;