无法获得一个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]
答
我想你只需要一个循环..
For i = 0 to Ubound(EmailSplitArray)
If isValidEmail(EmailSplitArray[i]) = False Then
// Return False
End If
Next
+0
我也这么认为,但使用类似的代码,一切是假的。我认为它起初看起来很直接。 – user1569869
明白了,谢谢你的分解。 – user1569869