注册 登录
编程论坛 ASP技术论坛

[求助]如何实现邮箱验证,怎么去实现程序呢?

枫吹过的季节 发布于 2007-10-20 11:24, 1861 次点击
<%
Function IsValidEmail(email)
Dim names,name,i,c
ISvalidEmail=TURE
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 IsNumber(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
%> 怎么样去实现它呢?
21 回复
#2
mnll2007-10-20 11:32
看不懂啊!刚出道阿!嘿嘿
#3
枫吹过的季节2007-10-20 11:43
没事的谢谢!能不能帮忙看一下啊!谢谢各位!!!
#4
永夜的极光2007-10-20 11:57
其实就是一个正则表达式的事情

以下代码来自百度


<script language=\"javascript\">
function isEmail(strEmail) {
  if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
   return true;
  else
   alert(\"Email格式不正确!\");
   document.formSignUp.email.value=\"\";
   document.formSignUp.email.focus();
}
</script>



这个是用js实现的
#5
枫吹过的季节2007-10-20 16:13
有没有用asp实现的阿?谢谢!
#6
tianyu1232007-10-20 18:05
这个不就是ASP的吗?不过此代码有几处错误!

红色的部位 TURE 改为 True

红色的部位 IsNumber 改为 IsNumeric

然后调用即可!

如:mail=request.form("mail")
if not IsValidEmail(mail) then
response.write"电子邮箱格式错误!"
response.end
end if


<%
Function IsValidEmail(email)
Dim names,name,i,c
ISvalidEmail=TURE
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 IsNumber(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
%>
#7
枫吹过的季节2007-10-20 20:07
那它怎么样去递交表单时候实现这段代码的功能呢?

#8
yms1232007-10-20 20:25
<%
Function IsValidEmail(email)
Dim names,name,i,c
ISvalidEmail=TURE
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 IsNumber(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
%>
将这段代码写在一个asp文件中引用过来
比如上面保存为IsValidEmail.asp
则代码为
(假设文件在同一目录下)
<!--#include file="IsValidEmail.asp"-->
<html>
<head>
<script language="javascript">
<%
Dim UsEmail
UsEmail=Request.Form("UsEmail")
IF UsEmail<>"" Then
IF IsValidEmail(UsEmail)=False Then
Response.Write "alert('电子邮件输入有错误');"
End IF
End IF
%>
</script>
</head>
<body>
<form name="form1" method="post" action="" >
<input type="text" name="UsEmail" >请输入EMail地址
<input type="submit" name="subbutton" value="提交" >
</form>
</body>
</html>
#9
枫吹过的季节2007-10-20 21:02
谢谢!怎么就没有表单呢?我意思是在表单下面实现阿?
#10
yms1232007-10-20 21:05
以下是引用枫吹过的季节在2007-10-20 21:02:06的发言:
谢谢!怎么就没有表单呢?我意思是在表单下面实现阿?

我的代码里用表单了呀?

#11
枫吹过的季节2007-10-20 22:04
但是为什么网页中就是显示不出来啊!我不知道为什么呢?
#12
yms1232007-10-20 22:12
网页中显示不出来?楼主用的我写的那个源代码?
实在不行把action填上本页的文件名试试。
#13
枫吹过的季节2007-10-20 22:25
但是页面中怎么没有表单呢?就是看不知道在前台怎么去提交


#14
枫吹过的季节2007-10-20 22:28
就是刚开始 学习所以可能就是对一些基础问题不会了,麻烦了?
#15
yms1232007-10-20 22:47
表单在HTML显示时是看不到的,只有在HTML代码里看到。
#16
hmhz2007-10-20 22:48
一个Email验证有必要搞的那么复杂吗?看看我写的,不比你们那个差吧

[CODE]function email(strng)
email = false
set regex = new regexp
regex.pattern = "^\w+((-\w+)|(.\w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$"
regex.ignorecase = true
set match = regex.execute(strng)
if match.count then email = true
end function[/CODE]

脑子灵活一点,思路为什么总是绕着想呢?
#17
mnll2007-10-21 09:38
恩就是阿!
#18
枫吹过的季节2007-10-21 09:45
那么在客户端一般怎么实现检验呢?就是怎么样把它和前台的表单和其他的用户名的验证联系在一起呢?
#19
hmhz2007-10-21 09:55

判断是这样的

if not email(Email) then
response.write "Email格式不对,请重新输入!"
response.end
end if

#20
hmhz2007-10-21 10:00
客户端使用 javascript 验证

[CODE]<script language="javascript">
function check() {
if (!form.mail.value.match(/^[\w]{1}[\w\.\-_]*@[\w]{1}[\w\-_\.]*\.[\w]{2,4}$/i)) {alert("Email格式不对,请重新输入!"); form.mail.focus(); return false;}
}
</script>[/CODE]

这是最有效的强悍正则验证法
#21
枫吹过的季节2007-10-21 10:50
谢谢我在摸索一下啊!
#22
枫吹过的季节2007-10-21 19:13
现在好了!谢谢!
1