zoukankan      html  css  js  c++  java
  • 表单验证

    表单验证
    为什么要进行表单验证?
     使用JavaScript可以十分快捷的进行表单验证,他不但能有效地检查用户
      输入的无效和错误数据,还能检查用户遗漏的必选项,从而减轻服务端的压力
      避免服务器短的信息出现错误。
    表单验证的思路
     1.首先获取表单元素的值,这些值一般都是字符串,包含数字、下划线等
     2.使用JavaScript中的一些方法对获取的string类型的数据进行判断。
     3.表单form有一个事件onsubmit,他是在提交表单之前调用的,因此可以在
     提交表单之前触发onsubmit事件,然后对获取的事件进行验证。
    表单选择器
     他是一种只能作用在表单上的选择器。
     一、1.:input匹配所有input元素
        2.:text选择所有单行文本框
        3.:password选择所有密码框
        4.:radio选择所有单选按钮
        5.:checkbox选择所有复选框
        6.:submit选择所有提交按钮
        7.:image选择所有图像域
        8.:reset选择所有重置按钮
        9.:button匹配所有按钮
        10.:file匹配所有文件域
        11.:hidden匹配所有不可见元素
      二、表单过滤选择器
       1.:enabled匹配所有可用元素
       2.:disabled匹配所有不可用元素
       3.:checked匹配所有被选中元素(单选按钮,复选框,select中的option)
       4.:selected匹配所有选中的option
    表单验证事件和方法
     事件: 1.onblur;失去焦点
        2.onfocus:获得焦点
     方法: 1.blur()失去焦点
        2.focus()获取焦点
    正则表达式
     什么式正则表达式:
      正则表达式是一个描述字符模式的对象,他是有一些特殊的字符组成这些符号和在SQLServer中学过的一样
      其组成的字符模式用来匹配各种表达式。
      RegExp是Regular Expression的缩写,他是对字符串执行模式匹配的强大工具。
      1)定义正则表达式:
       1.普通方法:
        表达式:一个字符串代表了某种规则,其中可以使某些特殊字符定义某种特殊的规则。
        附加参数:用来扩展表达式的含义: 1.g: 全局匹配  (global)
                2.i: 不区分大小写    (ignoreCase)
                3.m: 多行匹配    (multiline)
        语法1:var reg=/表达式/附加参数;
        注:附加参数可以随意匹配例如:
               var reg=/monkey/img;//代表查找monkey这个字符串,并且
                    //不区分大小写可以多行匹配且全局匹配
       2..构造函数:
        语法2:var reg=new ("表达式","附加参");
        /*普通方法中只能是一个常量字符串,而构造函数中可以是常量字符串也可以是JavaScript中定义的变量*/;
      2)表达式模式:
       1.简单模式:
        简答模式是指通过普通字符的组合来表达的模式:var reg=/monkey/;
       2.符合模式:
        符合模式是指通过含有通配符来组成的表达模式:var reg=/d[0-9]/;
       RegExp中的方法:
        1.exec()(检索字符中式正则表达式的匹配,返回找的值,并确定其位置);
        2.test() //检索字符串中的值,返回boolean(true或者false);
       String对象的方法:
        1.match(reg)//找到一个或者多个正则表达式的匹配
        2.search()//检索正则表达式相匹配的值
        3.repace(reg,str)//替换与正则表达式想匹配的值
        4.split("分隔符",n)//把字符串分割成字符数组(n式限制输出数组的个数)
      3)正则表达式的符号
       常用符号:
         1./.../代表一个模式的开始和结束
         2.^ 匹配字符串的开始
         3.$ 匹配字符串的结束
         4.s 任何空白字符
         5.S 任何非空白字符
         6.d 任何一个数字字符
         7.D 任何一个非数字字符
         8.w 匹配一个数字、下划线或者字母字符
         9.W 任何非单字字符
         10. . 除了换行符之外的任意字符
       正则表达式的重复字符:
         1.{n} 匹配前一项n次
         2.{n,}匹配前一项n次或者多次
         3.{n,m}匹配前一项至少n次,单不能超过m次
         4.* 匹配前一项0次或者多次
         5.+匹配前一项1次或者多次
         6.?匹配前一项0次或者1次,也就是说前一项式可选的。
    使用HTML5方式验证表单:
     1.HTML5新增的属性:
      placeholder:提供一种提示,输入域为空时显示,获得焦点输入内容是消失
      required:  规定输入域不能为空
      pattern:   规定验证input域的模式(正则表达式)
     2.validity属性
      validity属性可以获取表单的validityState对象;
      语法: var valdityState=document.getElementById("uName").valdity;
      validityState对象:
           1.valueMissing   必填项,返回布尔值
           2.typeMismatch   判断输入值与表单规定的type的类型是否匹配,返回布尔值
           3.patternMismatch   判断输入值是否与pattern规定的正则表达式是非匹配,返回布尔值
           4.toolong   判断输入内容是否唱出了表单maxLength特性限定的字符长度,返回布尔值
           5.rangeUnderflow   判断是佛小于min特性的值,返回布尔值
           6.rangeOverflow   判断输入值是否大于max特性值
           7.stepMismatch   判断输入值是否符合step属性规定的特性值,返回布尔值
           8.customError   使用自定义的验证错误提示信息。
       ///////////////////////使用setCustomValidity()方法自定义的错误提示信息:setCustomValidity(monkey)
                //会把错误信息自定义为monkey,此时customError属性为true,
                //setCustomValidity("")会清空自定义提示信息,此时为false。
       
  • 相关阅读:
    [MetaHook] Find a function signature
    [MetaHook] GameUI hook
    [MetaHook] BaseUI hook
    一些常用软件的网络端口协议分类介绍
    Visual C++中最常用的类与API函数
    Ubuntu常用软件安装
    C++字符串完全指引
    C++资源之不完全导引
    超过 130 个你需要了解的 vim 命令
    Little-endian和Big-endian
  • 原文地址:https://www.cnblogs.com/Tiandaochouqin1/p/9976198.html
Copyright © 2011-2022 走看看