`
阿尔萨斯
  • 浏览: 4199492 次
社区版块
存档分类
最新评论

关于日期的正则表达式

 
阅读更多

看了琼香MM的正则表达式学习分享,想起自己以前也对正则表达式粗浅的学习过,也分享一下,呵呵。

记得当时QTP自带教程中有关于日期的正则表达式的例子,即对时间:月//年采用正则表达式方法进行检查,但经常是测试失败。例子中提供的表达式为:[0-1][0-9]/[0-3][0-9]/200[0-9]当时间的月份和日期选择的是个位数时,订票页面中的日期前面并不会显示出0,使得测试失败。

问题分析:
检查点设置后认为格式应该是06/03/2007的,而实际捕获到的是6/3/2007。检查后发现,如果时间的月份和日期非个位数时,例如选择的时间是10/10/2007,则测试是可以通过的。

说明给出的例子的检查点设置是有问题的,需要对该表达式进行修改。

有以下几种正则表达式的修改方法:
1
[0-1]{0,}[0-9]/[0-3]{0,}[0-9]/200[0-9]
2
[0-1]{0,1}[0-9]/[0-3]{0,1}[0-9]/200[0-9]
3
[1]{0,}[0-9]/[1-3]{0,}[0-9]/200[0-9]
4
[1]{0,1}[0-9]/[1-3]{0,1}[0-9]/200[0-9]

解释:
[0-1]
0,}表示括号中的数,即在01范围内的数,允许出现0到任意次。不过这种表示不是很合适,如果月份和日期显示成了三位数或以上,也是检查不出错误的。
[0-1]{0,1}
就表示允许出现0个或一个数。这种表示严格规定了范围及显示个数,不出现时就表示这个月份是个位数,没有十位数。这种对于不确定程序有没有省略掉前面的0可以用此方法表示
[1]{0,1}
则表示可以不出现1,也可以出现1。这种也是可以的,如果出现了1,当然就表示该月份是十位数了。

修改后保存,重新运行,测试通过。

不过值得注意的是在QTP里,对时间采用正则表达式检查的话,只能是对其格式进行检查,选择的日期与显示的是否一致这是检查不出来的。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics