多个文本框验证问题
本篇博客讲解的问题是对上一篇博客实例分析的拓展。
一、问题描述
1. 三个EditBox,允许1到6个英文字符或数字,按OK结束。
二、等价类划分
1. 有效等价类:
长度: 1到6
字符: a-z, A-Z, 0-9
2. 无效等价类:
长度: 0,7
字符: 英文/数字以外字符,控制字符,标点符号
三、实现方法
同样的在该例中也是采用javascript来验证输入的字符串,由于是三个文本框,采用循环验证的方法并记录每一个文本框的验证结果,使用条件语句对每种结果进行判断并给出相应的提示。
四、测试用例
编号 | 输入 | 预期输出 |
1 |
String 1="123", String 2="abc", String 3="123abc" |
全部正确 |
2 |
String 1="", String 2="abc", String 3="123abc" |
框1格式错误 |
3 |
String 1="123a!", String 2="abc", String 3="123abc" |
框1格式错误 |
4 |
String 1="123", String 2="", String 3="123abc" |
框2格式错误 |
5 |
String 1="123", String 2="abc!", String 3="123abc" |
框2格式错误 |
6 |
String 1="123", String 2="abc", String 3="" |
框3格式错误 |
7 |
String 1="123", String 2="abc", String 3="123a!" |
框3格式错误 |
8 |
String 1="123!", String 2="", String 3="123abc" |
框1和框2格式错误 |
9 |
String 1="123!", String 2="abc", String 3="123abcd" |
框1和框3格式错误 |
10 |
String 1="123", String 2="abc!", String 3="123abcd" |
框2和框3格式错误 |
11 |
String 1="", String 2="abc!", String 3="123abcd" |
全部格式错误 |
五、源代码及部分测试结果图
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP 'index.jsp' starting page</title> 13 <meta http-equiv="pragma" content="no-cache"> 14 <meta http-equiv="cache-control" content="no-cache"> 15 <meta http-equiv="expires" content="0"> 16 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 17 <meta http-equiv="description" content="This is my page"> 18 <!-- 19 <link rel="stylesheet" type="text/css" href="styles.css"> 20 --> 21 </head> 22 23 <body> 24 <center> 25 <p>允许1到6个英文字符或数字,按OK结束。</p> 26 <table border="0"> 27 <tr><td>框1:</td><td><input id="demo1" type="text"></td></tr> 28 <tr><td>框2:</td><td><input id="demo2" type="text"></td></tr> 29 <tr><td>框3:</td><td><input id="demo3" type="text"></td></tr> 30 <tr><td></td><td align="center"><button type="button" onclick="check()">OK</button></td></tr> 31 </table> 32 <script> 33 function check() 34 { 35 var x; 36 var answer=new Array(); 37 for(i=0;i<3;i++){ 38 if(i==0) 39 x=document.getElementById("demo1").value; 40 else if(i==1) 41 x=document.getElementById("demo2").value; 42 else 43 x=document.getElementById("demo3").value; 44 if(x.length>=1&&x.length<=6) 45 { 46 if(x.match(/^([a-zA-Z0-9])*$/))//正则表达式用来表示英文或数字 47 answer[i]=true; 48 else 49 answer[i]=false; 50 } 51 else{ 52 answer[i]=false; 53 } 54 } 55 if(answer[0]){ 56 if(answer[1]){ 57 if(answer[2]){ 58 alert("全部正确"); 59 return; 60 }else{ 61 alert("框3格式错误"); 62 return; 63 } 64 }else{ 65 if(answer[2]){ 66 alert("框2格式错误"); 67 return; 68 }else{ 69 alert("框2和框3格式错误"); 70 return; 71 } 72 } 73 }else{ 74 if(answer[1]){ 75 if(answer[2]){ 76 alert("框1格式错误"); 77 return; 78 }else{ 79 alert("框1和框3格式错误"); 80 return; 81 } 82 }else{ 83 if(answer[2]){ 84 alert("框1和框2格式错误"); 85 return; 86 }else{ 87 alert("全部格式错误"); 88 return; 89 } 90 } 91 } 92 } 93 94 </script> 95 </center> 96 </body> 97 </html>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步