表单检验解决办法v1

原创 2006年06月08日 21:04:00
var err1 = "不能为空.";
var err2 = "有非法字符.";
var check_idArray = new Array();//保存一系列验证数据
/**
//############################
//User:先用数组check_idArray赋值,再调用onClick='idArray()'
//Create Date:06-9-24
//Athor: Ray/kawaycheng
//
//############################

//0  id
//1  文本长度 为 0 时,不受控制
//2  出错信息
//3  检验模式 ->
//        1:空值(包括不可见字符),

        2:空值(包括不可见字符)及危险字符,
        
        3:邮件格式,
        
        4:国内固话格式,
        
        5:移动电话格式
        
        6:仅数字
        
//    方便扩展通过改checkThisValue( )
例子
check_idArray[0] = new Array("user" , 50 , "请填上格式合法的用户名." , 2 );
check_idArray[1] = new Array("pass" , 50 , "请填上格式合法的密码." , 2 );
check_idArray[2] = new Array("chk" , 6 , "请填上格式合法的验证码." , 6 );

**/
function check(str)
{
    var x = true;
    var strArray = new Array( "[" , "]","{","}",";","&","<",">" );
    for( i in strArray )
    {
        if ( str.indexOf( strArray[ i ] ) > -1 )
        {
            x = false;
            break;
        }

    }
    return x;
}

function CheckNull( id , txtlen  , info )
{
//id

//txtlen 限制文本长度

//info 出错信息

 var tmp = document.getElementById(id);
 var reg = //s/g;
 
 if ( txtlen > 0 && tmp.value.length > txtlen )
 {
  alert( info );
  document.getElementById( id ).style.borderwidth = 1;
  document.getElementById( id ).style.borderColor = '#EFEFEF';
  document.getElementById( id ).value = tmp.value;
  document.getElementById( id ).focus();
  return false;
 }
 tmp.value = tmp.value.replace( reg , "" );
 if ( tmp.value == "" )
 {
  alert( info );
  document.getElementById( id ).style.borderwidth = 1;
  document.getElementById( id ).style.borderColor = '#EFEFEF';
  document.getElementById( id ).value = tmp.value;
  document.getElementById( id ).focus();
  return false;
 }
 else
 {
  if ( txtlen > 0 )
  {
   if ( tmp.value.length > txtlen )
   {
    alert( info );
    document.getElementById( id ).style.borderwidth = 1;
    document.getElementById( id ).style.borderColor = '#EFEFEF';
    document.getElementById( id ).value = tmp.value;
    document.getElementById( id ).focus();
    return false;
   }
   else
   {
    document.getElementById( id ).style.borderwidth = 1;
    document.getElementById( id ).style.borderColor = '';
   }
  }
  document.getElementById( id ).style.borderwidth = 1;
  document.getElementById( id ).style.borderColor = '';
  return true;
 }
}

function regExpSub( id , pattern )
{
    return pattern.test( document.getElementById( id ).value );        
}


function checkThisValue( id , len , info , type )
{
    var regExp = new Array()
    regExp[ 0 ] = /^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/; //邮件
    regExp[ 1 ] = /^((/(/d{3}/))|(/d{3}/-))?(/(0/d{2,3}/)|0/d{2,3}-)?[1-9]/d{6,7}$/; //固话
    regExp[ 2 ] = /^((/(/d{3}/))|(/d{3}/-))?13/d{9}$/; //移动电话
    regExp[ 3 ] = /^/d+$/;//数字
    regExp[ 4 ] = /^[/u0391-/uFFE5]+$/; //中文
    regExp[ 5 ] = /^[A-Za-z]+$/;//英文
    regExp[ 6 ] = /^(([A-Z]*|[a-z]*|/d*|[-_/~!@#/$%/^&/*/./(/)/[/]/{/}<>/?/////'/"]*)|.{0,5})$|/s/;//不安全字符
    switch( type )
    {
        case 1 :
            if ( CheckNull( id , len , info ) )
            {
            
            }
            else
            {
                return false;
            }
        break;
        
        case 2 :
            if ( CheckNull( id , len , info ) )
            {
                if ( check( document.getElementById(id).value ) )
                {
                    return true;
                }
                else
                {
                    alert( info );
                    document.getElementById(id).focus();
                    return false;
                }
            }
            else
            {
                return false;
            }
        break;
        
        case 3 :
            if ( ! CheckNull( id , len , info ) )
            {
                return false;
            }        
            if ( ! regExpSub( id , regExp[ 0 ] ) )
            {
                alert( info );
                document.getElementById(id).focus();
                return false;
            }
        break;
        
        case 4 :
            if ( ! CheckNull( id , len , info ) )
            {
                return false;
            }        
            if (  ! regExpSub( id , regExp[ 1 ] ) )
            {
                alert( info );
                document.getElementById(id).focus();
                return false;
            }
        break;
        
        case 5 :
            if ( ! CheckNull( id , len , info ) )
            {
                return false;
            }        
            if (  ! regExpSub( id , regExp[ 2 ] ) )
            {
                alert( info );
                document.getElementById(id).focus();
                return false;
            }
        break;
        
        case 6 :
            if ( ! CheckNull( id , len , info ) )
            {
                return false;
            }        
            if ( ! regExpSub( id , regExp[ 3 ] ) )
            {
                alert( info );
                document.getElementById(id).focus();
                return false;
            }
        break;
        
    }
    return true;
}

function idArray()
{
    var x = true;
    for ( var i in check_idArray )
    {
        if ( ! checkThisValue( check_idArray[ i ][ 0 ],check_idArray[ i ][ 1 ],check_idArray[ i ][ 2 ],check_idArray[ i ][ 3 ] ) )
        {
            x = false;
            break;
        }
    }
    return x;
}

html浮动窗口_表单及表单控件

HTML元素--iframe浮动窗口 对框架的补充,框架不能和body共存,而有时候我们恰恰又需要body,形成画中画的效果。 需求:有时我们需要,在一个含有的页面嵌入另外一个页面,形成画中画的效...
  • I_amKing
  • I_amKing
  • 2015年03月05日 16:02
  • 1129

【JSP】表单提交与表单验证

几点小结: (1)使用form表单提交数据,提交后的数据将会在另一个jsp页面进行处理。也可以实现不跳转,同时使用ajax进行局部更新,这里暂不进行说明。 (2)提交表单前需要进行数据验证时,响应...
  • moxiaomomo
  • moxiaomomo
  • 2013年01月25日 17:21
  • 24048

J2EE表单验证的前后台统一实现

1  背景介绍 在很多基于web的应用中,我们常常会面临一个问题,那就是表单验证。表单验证的重要性我想就不必要再反复的说了,总之就是很重要。通常情况下,对于用户从客户端递交到表单的数据我们所作的验证...
  • db332682748
  • db332682748
  • 2014年04月06日 21:21
  • 1866

Extjs表单的数据校验以及正则表达式校验

Extjs表单验证包括空验证、用vtype格式进行简单的验证、高级自定义密码验证、使用正则表达式验证等等。验证可以使用js提供的脚本来进行代码编写,但ext本身对表单进行了封装,并允许客户对其进行扩展...
  • u014163625
  • u014163625
  • 2015年03月13日 11:03
  • 2574

js校验表单 后提交表单的三种方法总结

1、 function check(form) { if(form.userId.value=='') { alert("请输...
  • A9925
  • A9925
  • 2015年07月30日 13:12
  • 621

【ife】任务三十:表单(二)多个表单项的动态校验

var inputs = document.getElementsByTagName("input"); for (var i = 0; i < inputs.length; i++) { inpu...
  • zhouziyu2011
  • zhouziyu2011
  • 2017年01月09日 16:59
  • 282

form 表单提交前验证

原文出处:http://www.cnblogs.com/xudong-bupt/p/3949631.html 可以使用form表单的onsubmit方法,在提交表单之前,对表单或者网页中的数据进...
  • chelen_jak
  • chelen_jak
  • 2016年07月30日 16:29
  • 5216

浅谈:android签名打包v1和v2的区别

为什么要谈这个问题: 故事发生的原因:我这边做了正式的签名后(v1和v2同时勾选,产生正式的apk),拿给后台,后台再对我的apk签名再进行处理(截取部分签名后,然后重新签名,打入渠道号)!最后神奇...
  • willba
  • willba
  • 2017年12月24日 17:20
  • 167

HTML5中表单验证的8种方法

在深人探讨表单验证之前,让我们先思考一下表单验证的真实含义。就其核心而言,表单验证是一套系统,它为终端用户检测无效的控件数据并标记这些错误。换言之,表单验证就是在表单提交服务器前对其进行一系列的检查并...
  • WiteWater
  • WiteWater
  • 2016年12月07日 19:03
  • 1915

jQuery校验 jQuery Validate 表单验证详解

官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 二、默认校验规则 (1...
  • agonie201218
  • agonie201218
  • 2015年05月22日 11:26
  • 3320
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:表单检验解决办法v1
举报原因:
原因补充:

(最多只允许输入30个字)