码迷,mamicode.com
首页 > 其他好文 > 详细

表单验证

时间:2016-06-04 19:17:06      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

==================================表单验证========================================
表单验证可以在客户端和服务器端
    1.客户端
        直接在已下载到本地的页面中调用脚本进行验证
        检查用户输入的无效或错误数据
        检查遗漏的必选项
    2.服务器端
        将页面提交到服务器处理,服务器的另一个包含表单的页面先执行对表单的验证,然后再返回响应结果到客户端
        缺点:每一次验证都要经过服务器,时间长,增加服务器的负担
        
实现步骤:
    1.获取表单元素的值
    2.根据业务规则,使用JS中的一下方法对获取的数据进行判断
    3.表单有一个事件onsubmit,在提交表单前调用。在提交表单时触发onsubmit事件,对获取的数据进行验证

验证方式:
    1.String对象的属性和方法
        a.属性 length(包括空格)
        b.方法
            toLowerCase
            toUpperCase
            charAt(index)    返回指定位置的字符
            indexOf(字符串,index)    返回字符串的位置
            substring(index1,index2)    包括index1,不包括index2
==================================正则表达式========================================
    2.正则表达式
        /.../    一个模块的开始和结束
        ^    匹配字符串的开始
        $    匹配字符串的开始
        \s    任何空白字符
        \S    任何非空白字符
        \d    [0-9]
        \D    除[0-9]外
        \w    [A-Za-z0-9]
        .    除换行符之外的任意字符
        
        {n}        匹配前一项n次
        {n,}    匹配前一项n次,或多次
        {n,m}    匹配前一项n~m次
        *        {0,}
        +        {1,}
        ?        前一项可选,{0,1}
    
1.普通方式
    var reg = /表达式/附加参数
    附加参数:(复合,不加参数)
        g:全局匹配
        i:不区分大小写匹配
        m:多行匹配
2.构造函数方式    
    var reg = new RegExp(表达式,附加参数);
【注意:表达式是正则表达式,可以省略附加参数。】
        
JS除了支持RegExp对象的正则表达式外,还支持String对象的正则表达式
    String对象的方法
        match()        返回指定的值
        search()    返回第一个匹配的位置,如果没有,就返回-1
        replace()    字符串对象.replace(RegExp对象或字符串,"替换的字符串")    如果没设置全文搜索,就替换第一个
        split()        字符串对象.split(分隔符,n)        如果不设置n,就返回所有的元素数组
        
范例:表单的事件触发

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6     <style>
 7         .error {
 8             border: 3px solid red;
 9         }
10     </style>
11 </head>
12 <body>
13     <script type="text/javascript" src="bootstrap/bootstrap.min.js"></script>
14     <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script>
15     <form >
16         <div>
17             <label for="name">用户名:</label>
18             <input type="text" name="name" id="name" regExp="^\w{6,12}$" errorMsg="用户名不能为空,并且长度..." placeholder="QQ邮箱/手机号" /><span></span>
19         </div>
20         <div>
21             <label for="passWord">密码:</label>
22             <input type="password" name="passWord" id="passWord"  regExp="^\w{6,12}$" errorMsg="密码不能为空,并且长度..." placeholder="请输入密码" /><span></span>
23         </div>
24         <div>
25             <input type="button" value="提交" />
26         </div>
27     </form>
28     <script type="text/javascript">
29         $(function(){
30             $(‘:input[regExp][errorMsg]‘).on(‘valid‘,function(){
31                 var regExp = new RegExp($(this).attr(‘regExp‘));
32                 var errorMsg = $(this).attr(‘errorMsg‘);
33                 var result = $(this).val().match(regExp);
34                 console.log(result);
35                 if (null == result) {
36                     $(this).addClass(‘error‘);
37                     $(this).next().html(errorMsg);
38                 } else {
39                     $(this).removeClass(‘error‘);
40                     $(this).next().html(‘‘);
41                 }
42             });
43 
44             $(‘input[type="button"]‘).click(function() {
45                 $(‘:input‘).trigger(‘valid‘);
46                 if($(this).closest(‘form‘).find(‘.error‘).length == 0){
47                     $(‘form‘).submit();
48                 }
49             });
50         });
51     </script>
52 </body>
53 </html>  

 

     
        
        
        
        
        
        
        
        
        
        
        
        
        
       

表单验证

标签:

原文地址:http://www.cnblogs.com/ivy-xu/p/5559354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!