使用JavaScript实现简单的输入校验

HTML页面代码:

 1 <!doctype html>
 2 <html lang="en">
 3  <head>
 4   <meta charset="UTF-8">
 5   <meta name="Generator" content="EditPlus®">
 6   <meta name="Author" content="">
 7   <meta name="Keywords" content="">
 8   <meta name="Description" content="">
 9   <title>Document</title>
10
11   <script type="text/javascript" src="04.js" charset="GBK"></script>
12  </head>
13  <body>
14
15   <!--
16   访问表单节点的元素
17   输入校验
18   -->
19
20   <form action="" id="a">
21      <br/>
22      姓名:<input id="" name="name" type="text" ><br/>
23      密码:<input id="" name="pass" type="text"/><br/>
24      年龄:<input id="" name="age" type="text"/><br/>
25
26      <input id="" name="" type="button" value="检查" onclick="checkForm();"/>
27   </form>
28   <script type="text/javascript">
29      var checkForm = function () {
30        //指明要各个字段要校验的规则
31          check ("a" , {
32             "name":"required",   //必填
33             "pass":{type:"regex",expr:/\w{4,8}/}, //符合指定的正则表达式,这里正则表达式的规则是字符长度要在4到8之间
34             "age":"int" //输入的必须为整数
35         });
36      }
37   </script>
38  </body>
39 </html>

04.js代码:

 1 //为String添加一个去除空格的方法:
 2 String.prototype.trim = function(){
 3     return this.replace(/^\s+/,"").replace(/\s+$/,"");
 4 }
 5
 6 //错误信息对象
 7 var errMsg = {
 8   "required":"必须填写",
 9    "int":"必须是一个整数",
10    "regex":"必须符合要求的格式"
11 }
12
13 var check = function(formid , fields)  //fields 参数的形式:{表单控件:要满足的规则}
14 {
15     var errResult = "";
16
17     var targetForm = document.getElementById(formid);
18     //fieldName一次代表fields对象里的每个key
19     for (var fieldName in fields )
20     {
21         //alert(fieldName);
22         //根据表单的控件的名称来获取相应的表单控件的值
23
24         var fieldValue = targetForm.elements[fieldName].value;
25         //alert(fieldValue);
26         //获取每个表单域应该满足的规则
27
28         var rule =   fields[fieldName];  //rule可能是字符串或者json对象
29         //如果规则是字符串
30         if(typeof rule == "string")
31         {
32             switch(rule)
33             {
34                 case "required":
35                     if(!fieldValue || fieldValue.trim() == "")
36                     {
37                         errResult += ( fieldName + " :" +errMsg["required"]+"\n") ;
38                     }
39                     break;
40                 case "int":
41                     if(fieldValue && fieldValue!=null && fieldValue.trim() != "")
42                     {
43                         if (isNaN(parseInt(fieldValue)))  //如果不是整数
44                         {
45                             errResult += ( fieldName + " :" +errMsg["int"]+"\n") ;
46                         }
47                     }
48                     else
49                         {
50                          errResult += ( fieldName + " :" +errMsg["required"]+"\n") ; //"int"校验也必须为必填
51                     }
52                     break;
53             }
54
55         }
56
57         //为json对象
58         else
59         {
60             switch(rule.type)
61             {
62                 case "regex":
63                     if(fieldValue && fieldValue!=null && fieldValue.trim() != "")
64                     {
65                         var reg = eval(rule.expr);  //将字符串转为正则表达式
66                         var result = reg.exec(fieldValue);//执行正则表达式,得到结果
67                         if(!result)
68                         {
69                             errResult += ( fieldName + " :" +errMsg["regex"]+"\n") ;
70                         }
71                     }
72                     else
73                     {
74                         errResult += ( fieldName + " :" +errMsg["required"]+"\n") ;
75                     }
76                     break;
77
78             }
79         }
80     }
81
82     //显示错误信息
83     if(errResult != "")
84     {
85        alert(errResult);
86     }
87
88 }

结果:

时间: 2024-07-30 20:23:53

使用JavaScript实现简单的输入校验的相关文章

struts2(七)输入校验

输入校验简述 由于Web应用的开放性,网络上所有浏览者都能够自由地使用该应用,这样该应用通过输入页面收集的数据可能很复杂,不仅会包含正常用户的误输入,还可能包含恶意用户的恶意输入.因此应用系统需要将这些非法输入阻止在应用之外. 异常输入,可能导致系统非正常中断,严重者会导致系统崩溃.应用程序需要正常处理表现层接受的各种数据,通常的做法是遇到异常输入时应用程序直接返回,提示浏览者必须重新输入,也就是将那些异常输入过滤掉.绝对异常输入的过滤,就是输入校验,也称为数据校验. 输入校验分为客户端校验和服

JAVAWEB开发之Struts2详解(二)——Action接受请求参数、类型转换器、使用Struts2的输入校验、以及遵守约定规则实现Struts2的零配置

Action接受请求参数 作为MVC框架,必须要负责解析HTTP请求参数,并将其封装到Model对象中 Struts2提供了非常强大的类型转换机制用于请求数据 到 model对象的封装 Struts2和MVC定义关系 StrutsPrepareAndExecuteFilter:控制器 在Struts2中action是什么?(Struts2是一个MVC框架) V:jsp M:action C:action StrutsPrepareAndExecuteFilter Struts2提供了三种数据封装

Struts2笔记——9.输入校验

校验分为客户端校验跟服务器校验.客户端主要依靠javascript代码完成,服务器端校验通过在程序中的编程完成.客户端仅能防止正常的误操作从而减低服务器的负载,而服务器端则可以防止恶意的攻击. 编写校验规则文件 Struts2提供了基于验证框架的输入校验,因此我们只需要编写简单的配置文件,框架就会自动帮我们进行服务器客户端校验.有了这套框架,我们无需对代码进行任何修改,仅仅增加一个校验规则文件即可.在想要进行校验的action目录下创建一个ActionName-validation.xml文件作

Struts2的输入校验

Struts2提供了基于验证框架的输入校验,在这种校验方式下,所有的输入校验只需要编写简单的配置文件,Struts2的验证框架将会负责进行服务器校验和客户端校验. 校验失败后将Struts2将自动返回名为“input”的Result,如需制定错误显示页面,则通过struts.xml来配置“input”的Result.在Result视图中使用<s:fielderror/>标签即可输入校验失败的提示信息. User.java package models; import java.util.Dat

Javascript实现简单的双向绑定

双向数据绑定指的是将对象属性变化绑定到UI,或者反之.换句话说,如果我们有一个拥有name属性的user对象,当我们给user.name赋予一个新值是UI也会相应的显示新的名字.同样的,如果UI包括了一个输入字段用来输入用户名,输入一个新的值会导致user对象中的那么属性发生变化. 双向数据绑定底层的思想非常的基本,它可以被压缩成为三个步骤: 我们需要一个方法来识别哪个UI元素被绑定了相应的属性 我们需要监视属性和UI元素的变化 我们需要将所有变化传播到绑定的对象和元素 虽然实现的方法有很多,但

Struts2之基于XML方式进行数据输入校验

使用基于XML配置方式实现输入校验时,action也要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validate.xml,其中ActionClassName为简单类名,-validate为固定写法. 输入页面index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-

javascript如何禁止小键盘输入数字

javascript如何禁止小键盘输入数字:不知道为何要禁止小键盘输入数字,不过确实有这样的需求,不过也非常的简单,无非就是通过按键码来判断是否是按下的小键盘,下面直接看代码,代码实例如下: function isNum()//判断小键盘输入数字 { var str=(window.event.keyCode); if(str>105 || str<96 ) { if(str!=8 ) { window.event.returnValue=false; return; } } } functi

Struts 2 类型转换器 输入校验 拦截器

Struts 2中内建了字符串类型和常见类型之间相互转换的转换器,能满足大多数转换需求,但不能完成字符串和User对象之间的转换. OGNL项目中有一个TypeConvert接口,这个接口是自定义类型转换器必须要实现的接口,OGNL还提供了一个实现类: DefaultTypeConverter,自定义类型转换器(UserConverter类)须重写DefaultTypeConverter类的convertValue()方法.该方法可以实现字符串和对象之前相互转换 注册局部类型转换器:注册局部类型

转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验

出处:http://www.cnblogs.com/Laupaul/archive/2012/03/15/2398360.html 使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validation.xml.ActionClassName为action的简单类名,-validation为固定写法.如果Action类为cn.validate.acti