我尝试使用以下代码控制电子邮件地址和审阅者姓名,但我收到了此错误。
Microsoft VBScript运行时错误“800a0005”
无效的程序调用或参数:'Mid'
我不能将Mid(REVIEWEREMAIL,InStr(1,REVIEWEREMAIL,“@”,1),1)与“@”进行比较吗?
If Len(REVIEWERNAME) < 2 Then
with response
.write "Error! Please fill in valid name. <br />"
end with
ElseIf Len(REVIEWEREMAIL) < 3 Then
with response
.write "Error! Please fill in valid email address. <br />"
end with
ElseIf Mid(REVIEWEREMAIL, InStr(1, REVIEWEREMAIL, "@", 1), 1) <> "@" Then
with response
.write "Error! Please fill in valid email address. <br />"
end with
Else
insert...
End If
答案 0 :(得分:1)
您可以像上面那样简化上一个ElseIf
:
ElseIf InStr(REVIEWEREMAIL, "@", vbTextCompare) = 0 Then
因为如上所述,您只是在检查所提供的电子邮件地址中是否有@
。
如果您担心进一步验证所获得的电子邮件地址,那么有很多关于使用正则表达式来验证电子邮件地址的文章。一个例子:http://www.codetoad.com/asp_email_reg_exp.asp
答案 1 :(得分:1)
可能的原因是REVIEWEREMAIL为空 - 在这种情况下,您的第一个IF条件不会按预期捕获它。 null的Len()不返回整数0。
“经典”ASP作弊是将您的null变量更改为类似
的空字符串REVIEWEREMAIL = REVIEWEREMAIL & ""
将返回LEN = 0
除此之外,您可能希望在线查找正则表达式,以检查有效的电子邮件值。