等价类测试——Web开发中对于用户名输入的合法性验证

问题描述:  允许1到6个英文字符或数字,按OK结束

有效等价类: 长度:1到6

字符:a-z,A-Z,0-9

无效等价类: 长度:0,7

字符:英文/数字以外字符,控制字符,标点符号

可得出:

有效等价类 无效等价类
length:1-6             length: ..-0&&7-..    
char:  a-z&&A-Z&&0-9 char:    others

所采用的测试用例及结果:

测试用例                       测试结果                       
0 有效
a 有效
Z 有效
9 有效
aA90 有效
ababab   有效
9a2b7c 有效
MMMMMM 有效
bbbbbb 有效
12 有效
123 有效
1234 有效
12345 有效
123456 有效
1234567 无效
abcdefg 无效
akbuGG 有效
无效
**** 无效
KGHGGGGG 无效
1k2M3 有效
  无效

编程测试实现关键代码为:

 1 <html>
 2
 3 <head>
 4 <script type="text/javascript">
 5 function equalTest(){
 6    var name = document.getElementById(‘name‘).value;
 7    if(name == null)
 8    {
 9         window.alert("用户名不可为空");
10    }
11    else
12    {
13         var nLen=name.length;
14         reg=/^[a-zA-Z0-9_]+$/;
15
16         if(nLen<1||nLen>6)
17         {
18             window.alert("非法")
19         }
20         else if(!reg.test(name))
21         {
22             window.alert("非法");
23         }
24         else return;
25    }
26 }
27 </script>
28 </head>
29
30 <body>
31 <input type="text" id="name" /><br/>
32 <input type="button" onclick="equalTest()" value="确定" />
33 </body>
34
35 </html>

PS:在正则表达式中,如果直接给出字符,就是精确匹配。用\d可以匹配一个数字,\w可以匹配一个字母或数字

要做更精确地匹配,可以用[]表示范围,比如:

  • [0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;
  • [0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如‘a100‘‘0_Z‘‘Py3000‘等等;
  • [a-zA-Z\_][0-9a-zA-Z\_]*可以匹配由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串,也就是Python合法的变量;
  • [a-zA-Z\_][0-9a-zA-Z\_]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。
时间: 2024-12-23 16:37:53

等价类测试——Web开发中对于用户名输入的合法性验证的相关文章

在web开发中你不得不注意的安全验证问题#1-SQL

前言 随着WEB开发的发展如日中天,越来越多的程序猿加入这个行列,尤其是在大型项目团队开发的过程中,程序员们的水平参差不齐.导致各种各样的安全验证不严密导致各种问题.正如那句话所说,水桶能装水的多少不取决于最高的挡板,而是最低的挡板. 那今天我就给大家演示一下常见的安全问题SQL的形成原因和预防. 环境准备 我本来打算用java做实验的,考虑到PHP的话比较快,就用PHP演示吧. 下面是我连接数据库的代码以及数据库的内容.文件名sql.php <?php $conn=mysql_connect(

在web开发中你不得不注意的安全验证问题#2-XSS

前言 XSS又叫CSS (Cross Site Script) ,跨站脚本攻击. 恶意攻击者往Web页面里插入恶意html代码.当用户浏览该页之时,嵌入当中Web里面的html代码会被运行,从而达到恶意攻击用户的特殊目的. 环境准备 和前几次一样,还是用PHP来做演示吧.由于XSS的产生是伴随着输入和输出的,所以自己随便写了个留言板的小应用. 可能写的不是非常完好.仅仅是提供測试使用而已. 留言板代码(有兴趣的能够測试) index.html <!DOCTYPE html PUBLIC "

WEB开发中一些常见的攻击方式及简单的防御方法

WEB开发中一些常见的攻击方式及简单的防御方法 20151127 转载http://www.lvtao.net/dev/582.html SQL注入最常见的攻击方式,所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击. 跨站脚本攻击(XSS)跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取

如何OE开发中实现一个在web开发中的小效果

近期公司里面有一个需求,就是当业务人员点击订单列表中的某一条时希望打开一个新的窗口动作,然后把这一条记录中的某些值带过去,这样一个效果在web开发中很简单,或许就是分分钟的事情.但是在客户端这种开发中确实不易,尤其是OpenERP这种有诸多限制的框架里面. 那么如何实现呢? 这个地方我的想法主要分两步:1.打开一个新的窗口(Form视图的)2.把值带入到新的窗口里面. 第一步里面我按日常的操作在view里面创建一个向导(wizard),然后给name和id赋值,然后在创建一个wizard文件(名

Web开发中前台与后台技术小结--关于EL表达式,JSTL,eval()函数

在我们日常Web开发中,常常用到EL表达式,JSTL标签,还有可能用到JavaScript中的eval().下面就这样技术和函数小小说明一下. EL(Expression Language),全称表达式语言,既然是开发语言,那么就像Java等语言一样是用来写语句的,通常是用在JSP页面中,我们为了获取JSP提供的内置对象的属性值, 我们通常会使用到EL表达式,比如开发中常见的一个需求就是获取项目的根目录,如果项目的名值变化了,我们在指定路径时,如果把项目的根目录用一个变量来表示的话,那么就不 需

Web开发中的18个关键性错误

前几年,我有机会能参与一些有趣的项目,并且独立完成开发.升级.重构以及新功能的开发等工作. 本文总结了一些PHP程序员在Web开发中经常 忽略的关键错误,尤其是在处理中大型的项目上问题更为突出.典型的错误表现在不能很好区分各种开发环境和没有使用缓存和备份等. 下面以PHP为例,但是其核心思想对每一个Web程序员都是适用的. 应用程序级别的错误 1.在开发阶段关闭了错误报告 我唯一想问的是:为什么?为什么在开发的时候要关闭错误报告? PHP有很多级别的错误报告,在开发阶段我们必须将它们全部开启.

Web开发中 前端路由 实现的几种方式和适用场景

浅析Web开发中前端路由实现的几种方式 主题 Web开发 故事从名叫Oliver的绿箭虾`说起,这位大虾酷爱社交网站,一天他打开了 Twitter ,从发过的tweets的选项卡一路切到followers选项卡,Oliver发现页面的内容变化了,URL也变化了,但为什么页面没有闪烁刷新呢?于是Oliver打开的网络监控器(没错,Oliver是个程序员),他惊讶地发现在切换选项卡时,只有几个XHR请求发生,但页面的URL却在对应着变化,这让Oliver不得不去思考这一机制的原因- 叙事体故事讲完,

WEB开发中常用的正则表达式集合

在计算机科学中,正则表达式用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在WEB开发中,正则表达式通常用来检测.查找替换某些符合规则的字符串,如检测用户输入E-mai格式是否正确,采集符合规则的页面内容等等.今天我将分别用PHP和Javascript向大家介绍WEB开发中最常用最实用的正则表达式及其用法,正则表达式是一门学科,不可能使用一篇文章来讲解完,理论的东西网上很多,有兴趣的同学可以搜一大把.不过你也许没必要去埋头学习琢磨不透的正则表达式,看本文和实例给您呈现常用.实用的正则

Java Web 开发中路径相关问题小结

Java Web开发中路径问题小结 (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 Eclipse中目录结构如图2所示: 图2 那么针对这个站点的几个基本概念表述如下: 1. web站点的根目录:http://localhost:8080/ 2. web应用程序的的根目录:http://localhost:8080/test/ 3.同级目录:http://localhost:8080/test/articles/article1.jsp和http://