iDate = .ActiveX("Attached Text:=Date of Flight:", "index:=0").GetROProperty("Text")
Msgbox iDate
If iDate < >"[0-9][0-9]/[0-9][0-9]/[0-9][0-9]" Then
Msgbox "日期格式不正确"
End If
End With
比如输入的日期不是数字,我要判断一下输入日期是否为数字的话,
If iDate < >"[0-9][0-9]/[0-9][0-9]/[0-9][0-9]" Then,这一句里应该怎么写呀。是用正则表达式吗,还是使用别的什么函数。谢谢作者: hsjzfling 时间: 2011-12-15 14:27
所有问题都可以在帮助文档中找到答案,建议通读2遍QTP自带的help
Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches ' Create variable.
Set regEx = New RegExp ' Create regular expression.
regEx.Pattern = patrn ' Set pattern.
regEx.IgnoreCase = True ' Set case insensitivity.
regEx.Global = True ' Set global applicability.
Set Matches = regEx.Execute(strng) ' Execute search.
For Each Match in Matches ' Iterate Matches collection.
RetStr = RetStr & "Match found at position "
RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
RetStr = RetStr & Match.Value & "'." & vbCRLF
Next
RegExpTest = RetStr
End Function
MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))
这是帮助中提供的代码,稍微修改下就能符合你的要求了
PS:你的那段正则也不能精确匹配合法日期。。。作者: zhangchaoy 时间: 2011-12-15 15:49
谢谢呀,我再研究一下作者: wangyanzhao 时间: 2011-12-18 21:11
If iDate < >"[1-12]{1}[1-31]{1}[2011-2296]{1}" Then
Msgbox "日期格式不正确"
End If作者: zylbsplx2008 时间: 2011-12-19 15:45
这个正则日期格式不一定是这样的,这样判断日期会出问题……作者: Lemon_s 时间: 2011-12-20 14:37 回复 1#zhangchaoy
Function RegExpfind(p,s)
Dim regEx
Set regEx=new RegExp
regEx.Pattern=p
regEx.IgnoreCase=True
regEx.Global=True
regExpfind=regEx.Test(s)
End Function
If (RegExpfind("^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|1[0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579[26]))|((0[48]|[2468][048]|[13579][26])00)-02-29)$",iDate)) Then
msgbox "日期格式正确"
else
msgbox "日期格式不正确"
End If