标题: 关于自定义函数的问题 [打印本页] 作者: zhangchaoy 时间: 2012-5-21 17:06 标题: 关于自定义函数的问题 Function SelectRegExp(Obj,Patrn)
Dim NumOfItems,i,CurrentValue,regEx,ItemToSelect,oldFilter
'初始化正则表达式
Set regEx=new RegExp
regEx.pattern=patrn
regEx.Ignorecase=false '区分大小写
oldfilter=Reporter.Filter '保存默认值
Reporter.Filter=2 '仅发送错误
ItemToSelect=-1
'获取测试对象的 NumOfItems属性
NumOfItems=Obj.getroproperty("items count")
For i=0 to NumOfItems-1
CurrentValue=Obj.GetItem(i)
If regEx.test(CurrentValue)Then
If (ItemToselect<>-1) Then
SelectRegExp=-1 '表示匹配项不唯一
Reporter.Filter=oldFilter
Exit function
End If
ItemToSelect=i
End If
Next
Reporter.Filter=oldFilter '重置默认设置
'做出选择动作
If (ItemToSelect>=0) Then
SelectRegExp=Obj.Select(ItemToSelect)
else
SelectRegExp=-1
End If
End Function
我不太明白下面这一段
If regEx.test(CurrentValue)Then
If (ItemToselect<>-1) Then
SelectRegExp=-1 '表示匹配项不唯一
为什么当regEX.test为真,当ItemToSelect <> -1时,就要SelectRegExp=-1。
请帮忙解释一下。还有就是ItemToselect<>-1时,是说明要选择的记录在list中出现了吗
谢谢作者: lifreshman0626 时间: 2012-5-22 08:57
这个函数的返回值分为选择成功,和失败,其中失败的返回值为-1;失败又分两种情况,SelectRegExp=-1 '表示匹配项不唯一,这里表示select里面存在重复项;后面的SelectRegExp=-1表示没有符合正则的选项。