Javascript客户端验证常用函数

// 非空验证
function validNull(theId,msg)
{
    
if (document.getElementById(theId).value  ==   "" )
    {
        window.alert(msg);
        document.getElementById(theId).focus();
        
return   false ;
    }
    
return   true ;
}
// 某控件不能为某值
function validCant(theId,theValue,msg)
{
    
if (document.getElementById(theId).value  ==  theValue)
    {
        window.alert(msg);
        document.getElementById(theId).focus();
        
return   false ;
    }
    
return   true ;
}
// Email格式验证
function validEmail(theId,msg)
{
    var email 
=   /^ [_a - zA - Z0 - 9 + .] + @([_a - zA - Z0 - 9 ] + .) + [a - zA - Z0 - 9 ]{ 2 , 3 }$ / ;
    
if (email.test(document.getElementById(theId).value))
    {
        
return   true ;
    }
    
else
    {
        window.alert(msg);
        document.getElementById(theId).focus();
        
return   false ;
    }
}
// 密码验证,不能包含特殊字符<>"'和空格
function validPassword(theId,msg)
{
    var reg 
=   /^ [ ^<> ' " ]*$/;
     if (reg.test(document.getElementById(theId).value))
    {
        
return   true ;
    }
    
else
    {
        window.alert(msg);
        document.getElementById(theId).focus();
        
return   false ;
    }
}
// 整数验证
function validInt(theId)
{
    var myInt 
=   /^ d * $ / ;
    
if (myInt.test(document.getElementById(theId).value))
    {
        
return   true ;
    }
    
else
    {
        window.alert(msg);
        document.getElementById(theId).focus();
        
return   false ;
    }
}
// 两值比较
function validCompare(theId1,theId2,msg)
{
    
if (document.getElementById(theId1).value  ==  document.getElementById(theId2).value)
    {
        
return   true ;
    }
    
else
    {
        window.alert(msg);
        document.getElementById(theId1).focus();
        
return   false ;
    }
}
// 字段长度验证(x位至y位)
function validLength(theId,x,y,msg)
{
    
if (document.getElementById(theId).value.length  <  x  ||  document.getElementById(theId).value.length  >  y)
    {
        window.alert(msg);
        document.getElementById(theId).focus();
        
return   false ;
    }
    
return   true ;
}


/* 描述: 验证日期 格式####-## */
None.giffunction isDateNY(str)
None.gif{
None.gif    var d = new Date();
None.gif    var y = d.getFullYear();
None.gif    var m = d.getMonth() + 1;
None.gif    m = ("00" + m).substr((m + "").length);
None.gif    var a = str.match(/^(d{4})(-|/)(d{2})$/);
None.gif    
None.gif    if ((!a)||(parseInt(str.substr(5,2),10)>12)||(parseInt(str.substr(5,2),10)<1))
None.gif    {
None.gif        return false;
None.gif    }
None.gif    return true;
None.gif}
None.gif/* 描述: 验证是否是浮点数 */
None.giffunction isDecimal(str) {
None.gif    if(!/^d+.d*$/.test(str)){
None.gif        return false;
None.gif    }
None.gif    return true;
None.gif}
None.gif/* 描述: 验证是否为年份 */
None.giffunction isYear(strYear){
None.gif    var iYear   =parseInt(strYear,10);
None.gif    if (iYear<1900 || iYear>9000)
None.gif       return false;
None.gif    return true;
None.gif}
None.gif
None.gif/* 描述: 验证是否为月份 */
None.giffunction isMonth(strMon){
None.gif    var iMon   =parseInt(strMon,10);
None.gif    if(iMon<0 || iMon>12)
None.gif       return false;
None.gif    return true;
None.gif}
None.gif/* 描述:是否是整数 */
None.giffunction isNumber(str) {
None.gif    for(var i=0;i<str.length;i++)
None.gif        if(str.charCodeAt(i)<0x0030 || str.charCodeAt(i)>0x0039) return false;
None.gif    return true;
None.gif}
None.gif
None.gif/* 描述: 验证是否为日 */
None.giffunction isDay(strDay){
None.gif    var iDay   =parseInt(strDay,10);
None.gif    if(iDay<0 || iDay>31)
None.gif       return false;
None.gif    return true;
None.gif}
None.gif
None.gif
None.gif/* 描述: 验证是否为normal类型*/
None.giffunction _isnormal(str) {
None.gif    if (/[^ws一-龥-()]/i.test(str)){
None.gif            return false;
None.gif        }
None.gif    return true;
None.gif}
None.gif
None.gif
None.gif/* 描述: 验证是否为integer类型 */
None.giffunction _isinteger(str) {
None.gif    return /^d+$/.test(str)
None.gif
None.gif}
None.gif
None.gif/* 描述: 验证是否为decimal类型 */
None.giffunction _isdecimal(str){
None.gif    if (/[^d.]/i.test(str)){
None.gif            return false;
None.gif        }
None.gif    return true;
None.gif}
None.gif
None.gif/* 描述: 验证是否为extend类型 */
None.giffunction _isextend(str) {
None.gif    if (/[^ws-(-)]/i.test(str)){
None.gif            return false;
None.gif        }
None.gif    return true;
None.gif}
None.gif
None.gif/* 描述: 验证是否为date类型 */
None.giffunction _isdatetime(str){
None.gif        if(/[^d-]/i.test(str)) {
None.gif            return false;
None.gif        }
None.gif    return true;
None.gif}
None.gif
None.gif/* 描述: 验证是否为mail类型 */
None.giffunction _ismail(str){
None.gif        if(/[^w一-龥-.@]/i.test(str)) {
None.gif            return false;
None.gif        }
None.gif    return true;
None.gif}
None.gif
None.gif/* 描述: 检查对象的输入长度 */
None.giffunction checkLength(obj,length){
None.gif    var tempValue=obj.value;
None.gif    if (obj.value.Tlength()>length){
None.gif        createInfoPop("输入长度不能大于"+length,obj,200,50);
None.gif        obj.value=obj.value.substr(0,length);
None.gif        if (tempValue==obj.value){
None.gif            obj.value="";
None.gif        }
None.gif    }
None.gif}
None.gif
None.gif/* 描述: 输入字符的控制  */
None.giffunction changeValue(obj,type){
None.gif
None.gif    switch(type){
None.gif        //包含数字、字母、汉字、下载线、中划线、()
None.gif        case "normal":
None.gif            if (!_isnormal(obj.value)){
None.gif                createInfoPop("只能包含数字、字母、汉字、下划线、中划线、空格、()",obj,200,50);
None.gif                obj.value=obj.value.replace(/[^ws一-龥-()]/g,"");
None.gif            }
None.gif            break;
None.gif        //整数
None.gif        case "integer":
None.gif            if (obj.value=="") break;
None.gif            if (!_isinteger(obj.value)){
None.gif                createInfoPop("只能包含数字",obj,200,50);
None.gif                obj.value=obj.value.replace(/D/g,"");
None.gif            }
None.gif            break;
None.gif
None.gif        //浮点数
None.gif        case "decimal":
None.gif            if (!_isdecimal(obj.value)){
None.gif                createInfoPop("只能包含数字、小数点",obj,200,50);
None.gif                obj.value=obj.value.replace(/[^d.]/,"");
None.gif            }
None.gif            break;
None.gif        //包含数字、字母、下载线、中划线、()
None.gif        case "extend":
None.gif            if (!_isextend(obj.value)){
None.gif                createInfoPop("只能包含数字、字母、下划线、中划线、()",obj,200,50);
None.gif                obj.value=obj.value.replace(/[^ws-()]/g,"");
None.gif            }
None.gif            break;
None.gif
None.gif        //包含数字、中划线
None.gif        case "date":
None.gif            if (!_isdatetime(obj.value)){
None.gif                createInfoPop("只能包含数字、中划线",obj,200,50);
None.gif                obj.value=obj.value.replace(/[^d-]/g,"");
None.gif            }
None.gif            break;
None.gif        //包含数字、汉字、下划线、中划线、·、@
None.gif        case "email":
None.gif            if (!_ismail(obj.value)){
None.gif                createInfoPop("只能包含数字、字母、汉字、下划线、中划线、.、@",obj,200,50);
None.gif                obj.value=obj.value.replace(/[^w一-龥-@.]/g,"");
None.gif            }
None.gif            break;
None.gif    }
None.gif}
None.gif
None.gif/* 描述: 失去焦点后,检查输入是否正确 */
None.giffunction blurValue(obj,type,length,prec){
None.gif    if (!prec) prec=2;// 默认精度为2
None.gif    if (obj.value=="") return false;
None.gif    switch(type){
None.gif        case "decimal":
None.gif            if (obj.value.indexOf(".")==-1){
None.gif                if ( _isinteger(obj.value)){
None.gif                    if (obj.value.length>(length-prec)){
None.gif                        createInfoPop("整数部分长度不能大于"+(length-prec)+"位",obj,200,50);
None.gif                        obj.value="";
None.gif                        break;
None.gif                    }else{
None.gif                        obj.value+="."+repeatStr("0",prec);
None.gif                    }
None.gif                }
None.gif            }
None.gif            else{
None.gif                if (obj.value.substr(0,obj.value.indexOf(".")).length>(length-prec)){
None.gif                    createInfoPop("整数部分长度不能大于"+(length-prec)+"位",obj,200,50);
None.gif                    obj.value="";
None.gif                    break;
None.gif                }
None.gif                if (obj.value.substr(obj.value.indexOf(".")+1).length<prec){
None.gif                    obj.value+=repeatStr("0",prec-obj.value.substr(obj.value.indexOf(".")+1).length);
None.gif                }
None.gif            }
None.gif            if (!isDecimal(obj.value)){
None.gif                createInfoPop(obj.value+"不是浮点数",obj,200,50);
None.gif                obj.value="";
None.gif                break;
None.gif            }
None.gif            checkLength(obj,length+1);
None.gif            if (obj.value.substr(obj.value.indexOf(".")).Tlength()>(prec+1)){
None.gif                createInfoPop("精度不能大于"+prec,obj,200,50);
None.gif                obj.value=obj.value.substr(0,obj.value.indexOf(".")+prec+1);
None.gif            }
None.gif            //格式化数字的格式
None.gif            formatDecimal(obj);
None.gif            break;
None.gif        case "integer":
None.gif            if (isNumber(obj.value)){
None.gif                if (obj.value.length>length){
None.gif                    createInfoPop("长度不能大于"+length,obj,200,50);
None.gif                    obj.value="";
None.gif                }
None.gif            }else{
None.gif                createInfoPop(obj.value+"不是整数",obj,200,50);
None.gif                obj.value="";
None.gif            }
None.gif            break;
None.gif        case "date":
None.gif            if (!isDate(obj.value)){
None.gif            createInfoPop(obj.value+"不是日期格式<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格式:(####-##-##)",obj,200,50);
None.gif                obj.value="";
None.gif            }
None.gif            break;
None.gif        case "email":
None.gif            if (!isEmail(obj.value)){
None.gif                createInfoPop("email 格式不正确",obj,200,50);
None.gif                obj.value="";
None.gif                break;
None.gif            }
None.gif            checkLength(obj,length);
None.gif            break;
None.gif        case "cbo":
None.gif        //-----------------------------------------------------------------------------
None.gif        // 说明:当类型为cbo时,length属性改为cboName
None.gif        //-----------------------------------------------------------------------------
None.gif            var cboObj;
None.gif            var sValue;
None.gif            cboObj = document.all.item(length);
None.gif            sValue="";
None.gif            
None.gif            if (obj.value.Tlength()<=0){
None.gif                break;
None.gif            }
None.gif            for(var i=0;i<cboObj.options.length;i++)
None.gif            {
None.gif                if(obj.value == cboObj.options[i].value)
None.gif                {
None.gif                    sValue = obj.value + "-" + cboObj.options[i].text;
None.gif                    break;
None.gif                }
None.gif                else if(obj.value == cboObj.options[i].text)
None.gif                {
None.gif                    sValue = cboObj.options[i].value + "-" + obj.value;
None.gif                    break;
None.gif                }
None.gif                else if(obj.value == (cboObj.options[i].value + "-" + cboObj.options[i].text))
None.gif                {
None.gif                    sValue=cboObj.options[i].value + "-" + cboObj.options[i].text;
None.gif                    break;
None.gif                }
None.gif            }
None.gif            obj.value=sValue;
None.gif
None.gif            break;
None.gif        //-----------------------------------------------------------------------------
None.gif        // 简短日期格式
None.gif        case "date_NY":
None.gif        
None.gif            if(obj.value.substr(0).length < 4)
None.gif                {
None.gif                    obj.value = "";
None.gif                    break;
None.gif                }
None.gif                if(obj.value.substr(0).length == 4)
None.gif                {
None.gif                    obj.value += "-01";
None.gif                    break;
None.gif                }
None.gif                if(obj.value.indexOf("-") != "-1")
None.gif                {
None.gif                    if(obj.value.substr(0,obj.value.indexOf("-")).length<4)
None.gif                    {
None.gif                        obj.value="";
None.gif                        break;
None.gif                    }
None.gif                    if (obj.value.substr(obj.value.indexOf("-") + 1).length<2)
None.gif                    {
None.gif                        if(obj.value.substr(obj.value.indexOf("-") + 1) == "")
None.gif                        { 
None.gif                            obj.value = obj.value.substring(0,obj.value.indexOf("-")) + "-01";
None.gif                            break;
None.gif                        }
None.gif                        if(eval(obj.value.substr(obj.value.indexOf("-")+1)) < 1)
None.gif                        {
None.gif                            obj.value=obj.value.substring(0,obj.value.indexOf("-")) + "-01";
None.gif                        }
None.gif                        else
None.gif                        {
None.gif                            obj.value = obj.value.substring(0,obj.value.indexOf("-")) + "-0" + obj.value.substr(obj.value.indexOf("-") + 1);
None.gif                        }
None.gif                    } 
None.gif                }
None.gif                
None.gif                if(isDateNY(obj.value) == false)
None.gif                {
None.gif                    createInfoPop("日期必须符合日期格式!",obj,250,28);
None.gif                    obj.value = "";
None.gif                    obj.focus();
None.gif                }
None.gif                
None.gif                break;
None.gif            
None.gif        case "nullmode":
None.gif            checkLength(obj,length);
None.gif            break;
None.gif    }
None.gif}
None.gif
None.gif/* 描述:格式化浮点数 */
None.giffunction formatDecimal(obj){
None.gif    var precStr="";
None.gif    var reg_exp;
None.gif    reg_exp=new RegExp("^0+([1-9].+|0..+)","g");
None.gif    obj.value=obj.value.replace(reg_exp,"$1");
None.gif    
None.gif    precStr=obj.value.substr(obj.value.indexOf('.'));
None.gif    if (obj.value.length>0){
None.gif    var num = parseInt(obj.value,10);    
None.gif    if(num >= 1000)
None.gif    {
None.gif            var number_string = Math.abs(num).toString();
None.gif            var insert_position;
None.gif            
None.gif            switch(number_string.length % 3)
None.gif            {
None.gif                case 1:insert_position = 1;
None.gif                break;
None.gif                case 2:insert_position = 2;
None.gif                break;
None.gif                case 0:insert_position = 3;
None.gif                break;
None.gif            }        
None.gif            while(insert_position < number_string.length)
None.gif            {
None.gif                number_string = number_string.left(insert_position) + "," + number_string.substring(insert_position);
None.gif                insert_position += 4;
None.gif            }    
None.gif                obj.value = number_string+precStr;
None.gif
None.gif    }
None.gif    }
None.gif}
None.gif/* 描述: 恢复浮点数显示 */
None.giffunction restoreFormat(obj){
None.gif    var reg_exp = new RegExp(",","g");
None.gif    obj.value = obj.value.replace(reg_exp,"");
None.gif
None.gif    if (obj.value.indexOf(".")!=-1){
None.gif        var j=1;
None.gif        for(i=obj.value.substr(obj.value.indexOf(".")).length-1;i>0;i--){
None.gif            if(obj.value.substr(obj.value.indexOf(".")+i,1)=="0"){        
None.gif                j+=1;
None.gif            }
None.gif            else{
None.gif                break;
None.gif            }
None.gif        }
None.gif        i=obj.value.substr(obj.value.indexOf(".")).length;
None.gif        obj.value=obj.value.substr(0,obj.value.indexOf(".")+i-j+1);
None.gif    }
None.gif    with(document.selection.createRange())
None.gif    {
None.gif        moveStart("character",obj.value.length+1);
None.gif        collapse();
None.gif        select();
None.gif    }
None.gif}

None.gif具体调用如下:
 changeValue (obj,type)

 描述:输入字符的控制

 说明:

obj:需检查的客户端控件

type:输入类型

{normal: 包含数字、字母、汉字、下载线、中划线、()}

{integer:包含数字}

{decimal:包含数字、小数点}

{extend: 包含数字、字母、下载线、中划线、()}

{date: 包含数字、中划线}

{email: 包含数字、汉字、下划线、中划线、小数点、@}

 样例:

1) 邮件格式检测

<input type=”button” name=”txtMail” onKeyup=”changeValue(this,’email’);” >

2) 日期格式检测

<input type=”button” name=”txtDate” onKeyup=”changeValue(this,’date’);” >

3) 浮点数检测

<input type=”button” name=”txtNumber” onKeyup=”changeValue(this,’decimal’);” >

 

 

 blurValue(obj,type,length,prec)

 描述:失去焦点后,检查输入是否正确

 说明:

obj:需检查的客户端控件

type:输入类型

{decimal:验证输入值是否是浮点数及格式化浮点数、检查长度}

{date:验证输入值是否是日期格式及格式化日期但无需检查长度}

{email:验证输入值是否是email格式、检查长度}

{nullmode:仅检查输入值的长度}

 length:最大输入长度

 prec:小数位精度,默认2位

样例:

1)      浮点数

<input type=”button” name=”txtMail” onBlur=”blurValue(this,’decimal’,10,3);” >

2)      日期

<input type=”button” name=”txtDate” onBlur=”blurValue(this,’date’);” >

3)      邮件地址

<input type=”button” name=”txtMail” onBlur=”blurValue(this,’email’,20);” >

4)      仅检测长度

<input type=”button” name=”txt1” onBlur=”blurValue(this,’nullmode’,20);” >

注:changValue与blurValue配合使用

如果是浮点数检测还要与restoreFormat配合使用

 restoreFormat(obj)

 描述:恢复浮点数显示

  说明:内部函数,将格式化过的数据赋给obj.value对象

样例:<input type=”button”name=”txt1” onFocus=”restoreFormat(this);”>

另外在Asp.Net中调用方法如下:
None.gif        txtCJG.Attributes("onblur") = "javascript:blurValue(this,'cbo','cboCJG');"
None.gif        txtCBSYR.Attributes("onkeyup") = "javascript:changeValue(this,'normal');"
None.gif        txtCBSYR.Attributes("onblur") = "javascript:blurValue(this,'nullmode',80);"

转载于:https://www.cnblogs.com/yoyozhou/archive/2007/03/29/692845.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值