爱自己所爱,一如既往。

正则表达式验证

上一篇 / 下一篇  2015-10-30 13:45:03 / 个人分类:基础知识

1. 校验邮箱地址密码等数据格式

校验数据格式的合法性是正则表达式的一项最常用的功能,正则表达式是一种形式化的字符串描述方法,只需要很少的代码就可以描述需要用到的字符串格式.


校验邮箱地址格式:

例如:6~18个字符,可使用字母、数字、下划线,需以字母开头

需要覆盖的用例:

1)输入长度19位邮箱地址

2)输入长度为6位的邮箱地址

3)输入长度为5位的邮箱地址

4)输入20位的邮箱地址

5)输入@前很短的满足长度要求的邮箱地址

6)输入短域名的满足长度要求的邮箱地址

7)输入@后域名较长的满足长度要求的邮箱地址

8)输入带‘_’的正常邮箱地址

9)输入含其他特殊字符的邮箱地址

10)输入数字开头的邮箱地址

11)输入下划线开头的邮箱地址


是否还是担心覆盖不全面呢?是否还有下划线在开头或末尾的情况?是否还有首位字母其余全数字的邮箱地址呢?还有大小写的情况呢?等等!


如果你理解了正则表达式,会让你放心很多了:

^[a-zA-Z]\w*@\w*(\.\w*){1,3}$


上面的正则表达式除了字符长度不好处理外,其余的情况都包括了,讲解一下:

^[a-zA-Z]^匹配开始的字符串,即以字母开头不区分大小写

\w*匹配0个或多个字母或数字或下划线

@:邮箱地址必不可少的符号

(\.\w*){1,3}:包含13个格式类似为.com的内容,包含了字母数字或下划线,例如yahoo.com.cn, z.cn的域名直接秒杀

$:匹配结束的字符串,这里即是以类似.com格式结束的内容

密码,身份证号码及URL中参数值等等的校验都是基于正则表达式的应用,以后再碰到类似的应用可以不用再琢磨case覆盖度是否够不够了,直接测试正则表达式会更高效喔。


2. 提取解析特定内容

对于文本或html文件按照特定的格式进行解析以提取重要信息,都是基于强大的正则表达式进行的开发,在招聘领域一个非常好的应用就是简历解析,可以把各个渠道的简历在一个系统中进行标准化管理易于检索, 这就需要把不同格式的简历解析成对应的内容存储到数据库中,就很好的利用了正则表达式强大的功能。


这里,至少需要考虑到的功能测试用例:

1)使用任意撰写的文本格式的简历进行解析

2)使用各个招聘平台的简历进行解析,如智联招聘,前程无忧,赶集等等,需要比较庞大的简历数据来测试其效果

3)使用html格式的简历解析

4)解析英文的简历

5)使用含有大量各种字符的内容解析

6)使用仅包含空格的内容解析

7)使用超长文本比如上百M不是简历的内容解析

8)随机抽取各种文件进行解析

9)然后还需对简历各个重要部分进行单独测试:如各种学历的解析,学校的解析,职位的解析,公司的解析等等。貌似这是一项永远都做不完的工作


举个简单的例子,学历的提取:

应该是要能提取小学,初中,高中,大专,本科,硕士,博士,MBAEMBA以及对应英文的学历,然后做数据映射成标准化的内容。如果制造各种简历来测试该需求,还不如先来测试其正则表达式,这里只是说明一个测试思路,不再列出对应的正则表达式了~


3. 字符串替换

工作中有些时候还会有这样的需求,把某某格式的A内容替换成B内容,这也是一个对正则表达式的应用,我们一样可以从开发人员那里获得正则表达式,对正则表达式进行review并可以构造各种数据来测试它。


4. 灵活使用正则表达式

我以前在测试工作中还有这样的情况,把页面中对应的数据都找出来然后从数据库中删除,你可以一条一条的通过手工填写到sql语句中,也可以通过简单的正则表达式对页面源文件解析后获取所有的数据,再通过强大的文本工具UltraEdit等把换行符替换成逗号,写到sql中,我相信后者会更快。当然,类似的应用可能还有很多很多。


5. 使用RegexBuddy工具

在线的正则表达式测试已基本满足需求,但是功能不够强大,而regexbuddy具备很多功能,可以测试正则表达式正确性,可以方便地把正则表达式生成各种语言下的代码,具有强大的library库,自带最常用的正则表达式如emailIP,域名,html标签等,还可以进行正则表达式的性能测试等,堪称正则表达式神器,不过是付费软件,大家也可以从网上下载绿色免费版使用。对于正则性能测试是个很好用的功能,因为正则表达式写的不好,直接影响了匹配的性能,体现到文章2点中就会导致处理时间的延长,这也会是致命的。


TAG: 表达式

 

评分:0

我来说两句

日历

« 2024-04-14  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 25720
  • 日志数: 20
  • 建立时间: 2015-10-06
  • 更新时间: 2015-12-09

RSS订阅

Open Toolbar