无法获得一个While循环与我的VBscipt工作

问题描述:

您好我有一个简单的while循环在VBScript中的问题。无法获得一个While循环与我的VBscipt工作

我有一个函数根据“;”分割一串电子邮件地址,然后它通过另一个函数(isValidEmail)运行每个电子邮件地址,它使用布尔返回进行一些简单的验证检查。

如果任何“isValidEmail”函数返回false我希望这个“EmailSplitFunc”返回false并退出否则我希望整个事情返回true。

我有分裂功能,但我努力获得一个在其中工作的循环。有任何想法吗?

Function EmailSplitFunc(emailaddress) 
    Dim EmailSplitArray, i, 
    EmailSplitArray = split(EmailStudentCheck,";") 
    While isValidEmail(EmailStudentCheck) 
    For i = 0 To Ubound(EmailSplitArray) 
    EmailStudentCheck = EmailSplitArray(i) 
    isValidEmail(EmailStudentCheck) 
    Next 
    Wend 
End function 

开始与顶级代码测试(写入)checkMList()函数:

Option Explicit 

Dim aTests : aTests = Array(_ 
    "[email protected];nix" _ 
    , "[email protected];[email protected]" _ 
) 
Dim sMList 
For Each sMList in aTests 
    Dim bOk : bOk = checkMList(sMList) 
    WScript.Echo CStr(bOk), sMList 
Next 

和添加假的checkM()函数:

Function checkM(sM) 
    checkM = 0 <> InStr(sM, "@") 
End Function 

然后考虑checkMList():它必须拆分sMList并检查每个部分是否是有效的电子邮件;找到第一个失败,函数应该返回False,只有当所有部分都通过检查时,才会返回True。这相当于:

Function checkMList(sMList) 
    Dim sM 
    For Each sM In Split(sMList, ";") 
     Dim bOk : bOk = checkM(sM) 
     WScript.Echo "*", CStr(bOk), sM 
     If Not bOk Then 
     checkMList = False ' first failure 
     Exit Function 
     End If 
    Next 
    checkMList = True ' reached if all ok 
End Function 

输出:

* True [email protected] 
* False nix 
False [email protected];nix 
* True [email protected] 
* True [email protected] 
True [email protected];[email protected] 
+0

明白了,谢谢你的分解。 – user1569869

我想你只需要一个循环..

For i = 0 to Ubound(EmailSplitArray) 
    If isValidEmail(EmailSplitArray[i]) = False Then 
     // Return False 
    End If 
Next 
+0

我也这么认为,但使用类似的代码,一切是假的。我认为它起初看起来很直接。 – user1569869