javascript通用数据类型校验函数

本文介绍了一系列用于前端表单验证的JavaScript函数,包括验证数字、整数、实数等类型的输入,以及对字符串长度、IP地址、邮箱格式等进行检查。

/*** 取得字符串的字节长度*/
function strlen(str) {    
     var i;    
     var len;    
        
     len = 0;    
     for (i=0;i<str.length;i++){    
   if (str.charcodeat(i)>255) len+=2; else len++;    
     }    
     return len;    
}    
   

/** 判断是否为数字,是则返回true,否则返回false*/
function f_check_number(obj){     
     if (/^/d+$/.test(obj.value)) {    
return true;    
     }else{    
f_alert(obj,"请输入数字");    
return false;    
     }    
}    
   

/** 判断是否为自然数,是则返回true,否则返回false*/
function f_check_naturalnumber(obj){     
     var s = obj.value;    
     if (/^[0-9]+$/.test( s ) && (s > 0)) {    
return true;    
     }else{    
   f_alert(obj,"请输入自然数");    
   return false;    
     }    
}    
   

/** 判断是否为整数,是则返回true,否则返回false*/
function f_check_integer(obj){     
     if (/^(/+|-)?/d+$/.test( obj.value )){    
return true;    
     }else{    
   f_alert(obj,"请输入整数");    
   return false;    
     }    
}    
   

/** 判断是否为实数,是则返回true,否则返回false*/
function f_check_float(obj){     
     if (/^(/+|-)?/d+($|/./d+$)/.test( obj.value ))     
     {    
return true;    
     }     
     else     
     {    
   f_alert(obj,"请输入实数");    
return false;    
     }    
}    
   

/** 校验数字的长度和精度*/
function f_check_double(obj){    
     var numreg;    
     var value = obj.value;    
     var strvaluetemp, strint, strdec;       
     var dtype = obj.eos_datatype;    
     var pos_dtype = dtype.substring(dtype.indexof("(")+1,dtype.indexof(")")).split(",");    
     var len = pos_dtype[0], prec = pos_dtype[1];    
     try   
     {     
   numreg =/[/-]/;    
   strvaluetemp = value.replace(numreg, "");    
   numreg =/[/+]/;    
   strvaluetemp = strvaluetemp.replace(numreg, "");    
   //整数    
   if(prec==0){    
numreg =/[/.]/;    
if(numreg.test(value) == true){    
     f_alert(obj, "输入必须为整数类型");    
     return false;       
}         
   }     
   if(strvaluetemp.indexof(".") < 0 ){    
if(strvaluetemp.length >( len - prec)){    
     f_alert(obj, "整数位不能超过"+ (len - prec) +"位");    
     return false;    
}     
   }else{    
strint = strvaluetemp.substr( 0, strvaluetemp.indexof(".") );     
if(strint.length >( len - prec)){    
     f_alert(obj, "整数位不能超过"+ (len - prec) +"位");    
     return false;    
}    
strdec = strvaluetemp.substr( (strvaluetemp.indexof(".")+1), strvaluetemp.length );     
if(strdec.length > prec){    
     f_alert(obj, "小数位不能超过"+   prec +"位");    
     return false;    
}     
   }     
   return true;    
     }catch(e){    
   alert("in f_check_double = " + e);    
   return false;    
     }       
}    
   

/** 校验数字的最小最大值* 返回bool*/
function f_check_interval(obj){    
     var value = parsefloat(obj.value);    
   
     var dtype = obj.eos_datatype;    
     var pos_dtype = dtype.substring(dtype.indexof("(")+1,dtype.indexof(")")).split(",");    
        
     var minlimit = pos_dtype[0];    
     var maxlimit = pos_dtype[1];    
     var minval = parsefloat(pos_dtype[0]);    
     var maxval = parsefloat(pos_dtype[1]);     
        
     if(isnan(value))    
     {    
   f_alert(obj, "值必须为数字");    
   return false;    
     }    
     if((isnan(minval) && (minlimit != "-")) || (isnan(maxval) && (maxlimit != "+")))    
     {    
   f_alert(obj, "边界值必须为数字或-、+");    
   return false;    
     }    
   
     if(minlimit == "-" && !isnan(maxval))    
     {    
   if(value > maxval)    
   {    
f_alert(obj, "值不能超过" + maxval);    
return false;    
   }    
     }    
        
     if(!isnan(minval) && maxlimit == "+")    
     {     
   if(value < minval)    
   {    
f_alert(obj, "值不能小于" + minval);    
return false;    
   }    
     }    
        
     if(!isnan(minval) && !isnan(maxval))    
     {    
   if(minval > maxval)    
   {    
f_alert(obj, "起始值" + minval + "不能大于终止值" + maxval);    
   }else   
   {    
if(!(value <= maxval && value >= minval))    
{    
     f_alert(obj, "值应该在" + minval + "和" + maxval + "之间");    
     return false;    
}    
   }    
     }    
     return true;    
}    
   

/*
用途:检查输入字符串是否只由汉字组成
如果通过验证返回true,否则返回false*/
function f_check_zh(obj){    
     if (/^[/u4e00-/u9fa5]+$/.test(obj.value)) {    
return true;    
     }    
     f_alert(obj,"请输入汉字");    
     return false;    
}    
   

/** 判断是否为小写英文字母,是则返回true,否则返回false*/
function f_check_lowercase(obj){     
     if (/^[a-z]+$/.test( obj.value ))     
     {    
return true;    
     }     
     f_alert(obj,"请输入小写英文字母");    
     return false;    
}    
   

/** 判断是否为大写英文字母,是则返回true,否则返回false*/
function f_check_uppercase(obj){     
     if (/^[a-z]+$/.test( obj.value ))     
     {    
return true;    
     }     
     f_alert(obj,"请输入大写英文字母");    
     return false;    
}    
   

/** 判断是否为英文字母,是则返回true,否则返回false*/
function f_check_letter(obj){     
     if (/^[a-za-z]+$/.test( obj.value ))     
     {    
return true;    
     }     
     f_alert(obj,"请输入英文字母");    
     return false;    
}    
   

/*
用途:检查输入字符串是否只由汉字、字母、数字组成
输入:
value:字符串
返回:
如果通过验证返回true,否则返回false*/
function f_check_zhornumorlett(obj){     //判断是否是汉字、字母、数字组成    
     var regu = "^[0-9a-za-z/u4e00-/u9fa5]+$";       
     var re = new regexp(regu);    
     if (re.test( obj.value )) {    
return true;    
     }    
     f_alert(obj,"请输入汉字、字母或数字");    
     return false;    
}    
   

/*
用途:校验ip地址的格式
输入:strip:ip地址
返回:如果通过验证返回true,否则返回false;*/
function f_check_ip(obj){     
     var re=/^(/d+)/.(/d+)/.(/d+)/.(/d+)$/; //匹配ip地址的正则表达式    
     if(re.test( obj.value ))    
     {    
   if( regexp.$1 <256 && regexp.$2<256 && regexp.$3<256 && regexp.$4<256) return true;    
     }    
     f_alert(obj,"请输入合法的计算机ip地址");    
     return false;     
}    
   

/*
用途:检查输入对象的值是否符合端口号格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false*/
function f_check_port(obj){    
     if(!f_check_number(obj))    
   return false;    
     if(obj.value < 65536)    
   return true;    
     f_alert(obj,"请输入合法的计算机ip地址端口号");    
     return false;     
}    
   

/*
用途:检查输入对象的值是否符合网址格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false*/
function f_check_url(obj){      
     var myreg = /^((http:[/][/])?/w+([.]/w+|[/]/w*)*)?$/;     
     if(myreg.test( obj.value )) return true;     
     f_alert(obj,"请输入合法的网页地址");    
     return false;     
}    
   

/*
用途:检查输入对象的值是否符合e-mail格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false*/
function f_check_email(obj){      
     var myreg = /^([-_a-za-z0-9/.]+)@([_a-za-z0-9]+/.)+[a-za-z0-9]{2,3}$/;     
     if(myreg.test( obj.value )) return true;     
     f_alert(obj,"请输入合法的电子邮件地址");    
     return false;     
}    
   

/*
要求:一、移动电话号码为11或12位,如果为12位,那么第一位为0
二、11位移动电话号码的第一位和第二位为"13"
三、12位移动电话号码的第二位和第三位为"13"
用途:检查输入手机号码是否正确
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false*/
function f_check_mobile(obj){       
     var regu =/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;    
     var re = new regexp(regu);    
     if (re.test( obj.value )) {    
return true;    
     }    
     f_alert(obj,"请输入正确的手机号码");    
     return false;       
}    
   

/*
要求:一、电话号码由数字、"("、")"和"-"构成
二、电话号码为3到8位
三、如果电话号码中包含有区号,那么区号为三位或四位
四、区号用"("、")"或"-"和其他部分隔开
用途:检查输入的电话号码格式是否正确
输入:
strphone:字符串
返回:
如果通过验证返回true,否则返回false*/
function f_check_phone(obj){    
     var regu =/(^([0][1-9]{2,3}[-])?/d{3,8}(-/d{1,6})?$)|(^/([0][1-9]{2,3}/)/d{3,8}(/(/d{1,6}/))?$)|(^/d{3,8}$)/;     
     var re = new regexp(regu);    
     if (re.test( obj.value )) {    
return true;    
     }    
     f_alert(obj,"请输入正确的电话号码");    
     return false;    
}    
   

/* 判断是否为邮政编码 */
function f_check_zipcode(obj){    
     if(!f_check_number(obj))    
   return false;    
     if(obj.value.length!=6)    
     {    
   f_alert(obj,"邮政编码长度必须是6位");    
   return false;    
     }    
     return true;    
}    

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值