Asp classic 制作一个函数,asp?

Asp classic 制作一个函数,asp?,asp-classic,vbscript,Asp Classic,Vbscript,我正在尝试创建一个函数来检查有效的学期,如秋季或春季,我一直收到这个错误 Microsoft VBScript编译错误“800a03f6” 预期“结束” 否则 ^ 这是我的密码 Function IsSemester(UserInput) ' Validation: Spring, Fall Temp=UserInput If Len(Temp)=9 Then IsSemester=True For P=1 to 4 If Left(Temp,P,1)<>"Fall" The

我正在尝试创建一个函数来检查有效的学期,如秋季或春季,我一直收到这个错误

Microsoft VBScript编译错误“800a03f6”
预期“结束”
否则
^

这是我的密码

Function IsSemester(UserInput)
' Validation: Spring, Fall

Temp=UserInput

If Len(Temp)=9 Then IsSemester=True

For P=1 to 4

If Left(Temp,P,1)<>"Fall" Then IsSemester=False

Next

If Mid(Temp,5,1)<>" " Then IsSemester=False

For P=6 to 9

If Not IsInteger(Mid(Temp,P,9)) Then IsSemester=False

Next

Else

IsSemester=True 

End If

If Len(Temp)=11 Then IsSemester=True

 For C=1 to 6

If Left(Temp,C,6)<>"Spring" Then IsSemester=False

 Next

If Mid(Temp,7,1)<>" " Then IsSemester=False 

For C=8 to 11

If Not IsInteger(Mid(Temp,8,11)) Then IsSemester=False

Next

Else 

IsSemester=True
End If
End Function
函数IsSeMaster(用户输入)
验证:春天,秋天
Temp=UserInput
如果Len(Temp)=9,则IsSeMaster=True
对于P=1到4
如果左侧(温度、压力、1)“下降”,则IsSeMaster=False
下一个
如果中间(温度,5,1)”,则IsSeMaster=False
对于P=6到9
如果不是IsInteger(Mid(温度,P,9)),则IsSemester=False
下一个
其他的
IsSemester=True
如果结束
如果Len(Temp)=11,则IsSeMaster=True
对于C=1到6
如果左侧(温度、C、6)“弹簧”,则IsSeMaster=False
下一个
如果Mid(温度,7,1)”,则IsSeMaster=False
对于C=8到11
如果不是IsInteger(Mid(温度,8,11)),则IsSemester=False
下一个
其他的
IsSemester=True
如果结束
端函数

太简单了,缩进你的代码,你就会发现问题所在

Function IsSemester(UserInput)
' Validation: Spring, Fall

    Temp=UserInput

    If Len(Temp)=9 Then IsSemester=True

    For P=1 to 4

        If Left(Temp,P,1)<>"Fall" Then IsSemester=False

    Next

    If Mid(Temp,5,1)<>" " Then IsSemester=False

    For P=6 to 9

        If Not IsInteger(Mid(Temp,P,9)) Then IsSemester=False

    Next

    Else

        IsSemester=True 

    End If

    If Len(Temp)=11 Then IsSemester=True

    For C=1 to 6

        If Left(Temp,C,6)<>"Spring" Then IsSemester=False

    Next

    If Mid(Temp,7,1)<>" " Then IsSemester=False 

    For C=8 to 11

        If Not IsInteger(Mid(Temp,8,11)) Then IsSemester=False

    Next

    Else 

        IsSemester=True
    End If
End Function
意味着它是一个独立的If语句,只有同一行上的THEN之后的语句将受该条件控制,因此下一行上的For循环是一个独立的语句,与该If无关。您应该将代码更改为

If Len(Temp)=9 Then
    IsSemester = True

    '<whatever your code here>
End If
如果Len(Temp)=9,则
IsSemester=True
'
如果结束

如果您指出错误(特别是),这会很有帮助,尽管我强烈同意OP应该缩进他的代码。您能看到最后一个
Else
End if
??似乎在此之前缺少了一个
IF
…我看到您已修复了该问题。我的意思是为了OP的利益。你应该总是解释你的解决方案,即使只是简单的解释。参见这篇文章中的第10点:我认为If以If len(Temp)=11开始,而以If结尾。对不起,我是个笨蛋…@尼克,谢谢,我会取消我的否决票(实际上我会向上投票)。另外,欢迎来到你正在踢屁股的网站,2周内200个代表=)PS:如果你想从你的评论中通知某人,你可以使用“@”符号。对我来说,那将是
@jadarnel27
。仅供参考。
If Len(Temp)=9 Then
    IsSemester = True

    '<whatever your code here>
End If