一些公用js函数

来源:互联网 发布:js清空tr里的数据 编辑:程序博客网 时间:2024/04/30 23:00

 javaScript通用数据类型校验

/**
*
取得字符串的字节长度
*/
代码
1.      function strlen(str)   
2.      {   
3.          var i;   
4.          var len;   
5.             
6.          len = 0;   
7.          for (i=0;i<str.length;i++)   
8.          {   
9.              if (str.charCodeAt(i)>255) len+=2; else len++;   
10.       }   
11.       return len;   
12.   }   
13.      

/*
*
判断是否为数字,是则返回true,否则返回false
*/

代码
1.      function f_check_number(obj)   
2.      {          
3.          if (/^/d+$/.test(obj.value))   
4.          {   
5.             return true;   
6.          }    
7.          else    
8.          {   
9.             f_alert(obj,"请输入数字");   
10.          return false;   
11.       }   
12.   }   
13.      


/*
*
判断是否为自然数,是则返回true,否则返回false
*/

代码
1.      function f_check_naturalnumber(obj)   
2.      {          
3.          var s = obj.value;   
4.          if (/^[0-9]+$/.test( s ) && (s > 0))   
5.          {   
6.             return true;   
7.          }    
8.          else    
9.          {   
10.           f_alert(obj,"请输入自然数");   
11.           return false;   
12.       }   
13.   }   
14.      


/*
*
判断是否为整数,是则返回true,否则返回false
*/

代码
1.      function f_check_integer(obj)   
2.      {          
3.          if (/^(/+|-)?/d+$/.test( obj.value ))    
4.          {   
5.             return true;   
6.          }    
7.          else    
8.          {   
9.              f_alert(obj,"请输入整数");   
10.           return false;   
11.       }   
12.   }   
13.      


/*
*
判断是否为实数,是则返回true,否则返回false
*/

代码
1.      function f_check_float(obj)   
2.      {          
3.          if (/^(/+|-)?/d+($|/./d+$)/.test( obj.value ))    
4.          {   
5.             return true;   
6.          }    
7.          else    
8.          {   
9.              f_alert(obj,"请输入实数");   
10.          return false;   
11.       }   
12.   }   
13.      


/*
*
校验数字的长度和精度
*/

代码
1.      function f_check_double(obj){   
2.          var numReg;   
3.          var value = obj.value;   
4.          var strValueTemp, strInt, strDec;      
5.          var dtype = obj.eos_datatype;   
6.          var pos_dtype = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")")).split(",");   
7.          var len = pos_dtype[0], prec = pos_dtype[1];   
8.          try  
9.          {          
10.           numReg =/[/-]/;   
11.           strValueTemp = value.replace(numReg, "");   
12.           numReg =/[/+]/;   
13.           strValueTemp = strValueTemp.replace(numReg, "");   
14.           //整数   
15.           if(prec==0){   
16.               numReg =/[/.]/;   
17.               if(numReg.test(value) == true){   
18.                   f_alert(obj, "输入必须为整数类型");   
19.                   return false;      
20.               }              
21.           }          
22.           if(strValueTemp.indexOf(".") < 0 ){   
23.               if(strValueTemp.length >( len - prec)){   
24.                   f_alert(obj, "整数位不能超过"+ (len - prec) +"");   
25.                   return false;   
26.               }          
27.           }else{   
28.               strInt = strValueTemp.substr( 0, strValueTemp.indexOf(".") );          
29.               if(strInt.length >( len - prec)){   
30.                   f_alert(obj, "整数位不能超过"+ (len - prec) +"");   
31.                   return false;   
32.               }   
33.               strDec = strValueTemp.substr( (strValueTemp.indexOf(".")+1), strValueTemp.length );    
34.               if(strDec.length > prec){   
35.                   f_alert(obj, "小数位不能超过"+  prec +"");   
36.                   return false;   
37.               }          
38.           }          
39.           return true;   
40.       }catch(e){   
41.           alert("in f_check_double = " + e);   
42.           return false;   
43.       }      
44.   }   
45.      


/*
*
校验数字的最小最大值
* 返回bool
*/

代码
1.      function f_check_interval(obj)   
2.      {   
3.          var value = parseFloat(obj.value);   
4.        
5.          var dtype = obj.eos_datatype;   
6.          var pos_dtype = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")")).split(",");   
7.             
8.          var minLimit = pos_dtype[0];   
9.          var maxLimit = pos_dtype[1];   
10.       var minVal = parseFloat(pos_dtype[0]);   
11.       var maxVal = parseFloat(pos_dtype[1]);    
12.          
13.       if(isNaN(value))   
14.       {   
15.           f_alert(obj, "值必须为数字");   
16.           return false;   
17.       }   
18.       if((isNaN(minVal) && (minLimit != "-")) || (isNaN(maxVal) && (maxLimit != "+")))   
19.       {   
20.           f_alert(obj, "边界值必须为数字或-、+");   
21.           return false;   
22.       }   
23.     
24.       if(minLimit == "-" && !isNaN(maxVal))   
25.       {   
26.           if(value > maxVal)   
27.           {   
28.               f_alert(obj, "值不能超过" + maxVal);   
29.               return false;   
30.           }   
31.       }   
32.          
33.       if(!isNaN(minVal) && maxLimit == "+")   
34.       {          
35.           if(value < minVal)   
36.           {   
37.               f_alert(obj, "值不能小于" + minVal);   
38.               return false;   
39.           }   
40.       }   
41.          
42.       if(!isNaN(minVal) && !isNaN(maxVal))   
43.       {   
44.           if(minVal > maxVal)   
45.           {   
46.               f_alert(obj, "起始值" + minVal + "不能大于终止值" + maxVal);   
47.           }else  
48.           {   
49.               if(!(value <= maxVal && value >= minVal))   
50.               {   
51.                   f_alert(obj, "值应该在" + minVal + "" + maxVal + "之间");   
52.                   return false;   
53.               }   
54.           }   
55.       }   
56.       return true;   
57.   }   
58.      


/*
用途:检查输入字符串是否只由汉字组成
如果通过验证返回true,否则返回false
*/

代码
1.      function f_check_zh(obj){   
2.          if (/^[/u4e00-/u9fa5]+$/.test(obj.value)) {   
3.            return true;   
4.          }   
5.          f_alert(obj,"请输入汉字");   
6.          return false;   
7.      }   
8.         


/*
*
判断是否为小写英文字母,是则返回true,否则返回false
*/

代码
1.      function f_check_lowercase(obj)   
2.      {          
3.          if (/^[a-z]+$/.test( obj.value ))    
4.          {   
5.             return true;   
6.          }    
7.          f_alert(obj,"请输入小写英文字母");   
8.          return false;   
9.      }   
10.      


/*
*
判断是否为大写英文字母,是则返回true,否则返回false
*/

代码
1.      function f_check_uppercase(obj)   
2.      {          
3.          if (/^[A-Z]+$/.test( obj.value ))    
4.          {   
5.             return true;   
6.          }    
7.          f_alert(obj,"请输入大写英文字母");   
8.          return false;   
9.      }   
10.      


/*
*
判断是否为英文字母,是则返回true,否则返回false
*/

代码
1.      function f_check_letter(obj)   
2.      {          
3.          if (/^[A-Za-z]+$/.test( obj.value ))    
4.          {   
5.             return true;   
6.          }    
7.          f_alert(obj,"请输入英文字母");   
8.          return false;   
9.      }   
10.      


/*
用途:检查输入字符串是否只由汉字、字母、数字组成
输入:
value:字符串
返回:
如果通过验证返回true,否则返回false
*/

代码
1.      function f_check_ZhOrNumOrLett(obj){    //判断是否是汉字、字母、数字组成   
2.          var regu = "^[0-9a-zA-Z/u4e00-/u9fa5]+$";      
3.          var re = new RegExp(regu);   
4.          if (re.test( obj.value )) {   
5.            return true;   
6.          }   
7.          f_alert(obj,"请输入汉字、字母或数字");   
8.          return false;   
9.      }   
10.      


/*
用途:校验ip地址的格式
输入:strIP:ip地址
返回:如果通过验证返回true,否则返回false;
*/

代码
1.      function f_check_IP(obj)    
2.      {    
3.          var re=/^(/d+)/.(/d+)/.(/d+)/.(/d+)$/; //匹配IP地址的正则表达式   
4.          if(re.test( obj.value ))   
5.          {   
6.              if( RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true;   
7.          }   
8.          f_alert(obj,"请输入合法的计算机IP地址");   
9.          return false;    
10.   }   
11.      


/*
用途:检查输入对象的值是否符合端口号格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/

代码
1.      function f_check_port(obj)   
2.      {   
3.          if(!f_check_number(obj))   
4.              return false;   
5.          if(obj.value < 65536)   
6.              return true;   
7.          f_alert(obj,"请输入合法的计算机IP地址端口号");   
8.          return false;    
9.      }   
10.      


/*
用途:检查输入对象的值是否符合网址格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/

代码
1.      function f_check_URL(obj){     
2.          var myReg = /^((http:[/][/])?/w+([.]/w+|[/]/w*)*)?$/;    
3.          if(myReg.test( obj.value )) return true;    
4.          f_alert(obj,"请输入合法的网页地址");   
5.          return false;    
6.      }   
7.         


/*
用途:检查输入对象的值是否符合E-Mail格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/

代码
1.      function f_check_email(obj){     
2.          var myReg = /^([-_A-Za-z0-9/.]+)@([_A-Za-z0-9]+/.)+[A-Za-z0-9]{2,3}$/;    
3.          if(myReg.test( obj.value )) return true;    
4.          f_alert(obj,"请输入合法的电子邮件地址");   
5.          return false;    
6.      }   
7.         


/*
要求:一、移动电话号码为11或12位,如果为12位,那么第一位为0
二、11位移动电话号码的第一位和第二位为"13"
三、12位移动电话号码的第二位和第三位为"13"
用途:检查输入手机号码是否正确
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/

代码
1.      function f_check_mobile(obj){      
2.          var regu =/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;   
3.          var re = new RegExp(regu);   
4.          if (re.test( obj.value )) {   
5.            return true;   
6.          }   
7.          f_alert(obj,"请输入正确的手机号码");   
8.          return false;      
9.      }   
10.      


/*
要求:一、电话号码由数字、"("、")"和"-"构成
二、电话号码为3到8位
三、如果电话号码中包含有区号,那么区号为三位或四位
四、区号用"("、")"或"-"和其他部分隔开
用途:检查输入的电话号码格式是否正确
输入:
strPhone:字符串
返回:
如果通过验证返回true,否则返回false
*/

代码
1.      function f_check_phone(obj)    
2.      {   
3.          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}$)/;    
4.          var re = new RegExp(regu);   
5.          if (re.test( obj.value )) {   
6.            return true;   
7.          }   
8.          f_alert(obj,"请输入正确的电话号码");   
9.          return false;   
10.   }   
11.      


/*
判断是否为邮政编码 */

代码
1.      function f_check_zipcode(obj)   
2.      {   
3.          if(!f_check_number(obj))   
4.              return false;   
5.          if(obj.value.length!=6)   
6.          {   
7.              f_alert(obj,"邮政编码长度必须是6位");   
8.              return false;   
9.          }   
10.       return true;   
11.   }   
12.      


/*
用户ID,可以为数字、字母、下划线的组合,
第一个字符不能为数字,且总长度不能超过20。
*/

代码
1.      function f_check_userID(obj)   
2.      {   
3.          var userID = obj.value;   
4.          if(userID.length > 20)   
5.          {   
6.              f_alert(obj,"ID长度不能大于20");   
7.              return false;   
8.          }   
9.        
10.       if(!isNaN(userID.charAt(0)))   
11.       {   
12.           f_alert(obj,"ID第一个字符不能为数字");   
13.           return false;   
14.       }   
15.       if(!/^/w{1,20}$/.test(userID))    
16.       {   
17.           f_alert(obj,"ID只能由数字、字母、下划线组合而成");   
18.           return false;   
19.       }   
20.       return true;   
21.   }   
22.      


/*
功能:验证身份证号码是否有效
提示信息:未输入或输入身份证号不正确!
使用:f_check_IDno(obj)
返回:bool
*/

代码
1.      function f_check_IDno(obj)   
2.      {    
3.          var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};   
4.          
5.          var iSum = 0;   
6.          var info = "";   
7.          var strIDno = obj.value;   
8.          var idCardLength = strIDno.length;     
9.          if(!/^/d{17}(/d|x)$/i.test(strIDno)&&!/^/d{15}$/i.test(strIDno))    
10.       {   
11.           f_alert(obj,"非法身份证号");   
12.           return false;   
13.       }   
14.       
15.       //在后面的运算中x相当于数字10,所以转换成a   
16.       strIDno = strIDno.replace(/x$/i,"a");   
17.     
18.       if(aCity[parseInt(strIDno.substr(0,2))]==null)   
19.       {   
20.           f_alert(obj,"非法地区");   
21.           return false;   
22.       }   
23.          
24.       if (idCardLength==18)   
25.       {   
26.           sBirthday=strIDno.substr(6,4)+"-"+Number(strIDno.substr(10,2))+"-"+Number(strIDno.substr(12,2));   
27.           var d = new Date(sBirthday.replace(/-/g,"/"))   
28.           if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))   
29.           {          
30.               f_alert(obj,"非法生日");   
31.               return false;   
32.           }   
33.     
34.           for(var i = 17;i>=0;i --)   
35.               iSum += (Math.pow(2,i) % 11) * parseInt(strIDno.charAt(17 - i),11);   
36.     
37.           if(iSum%11!=1)   
38.           {   
39.               f_alert(obj,"非法身份证号");   
40.               return false;   
41.           }   
42.       }   
43.       else if (idCardLength==15)   
44.       {   
45.           sBirthday = "19" + strIDno.substr(6,2) + "-" + Number(strIDno.substr(8,2)) + "-" + Number(strIDno.substr(10,2));   
46.           var d = new Date(sBirthday.replace(/-/g,"/"))   
47.           var dd = d.getFullYear().toString() + "-" + (d.getMonth()+1) + "-" + d.getDate();      
48.           if(sBirthday != dd)   
49.           {   
50.               f_alert(obj,"非法生日");   
51.               return false;   
52.           }   
53.       }   
54.       return true;    
55.   }   
56.      


/*
*
判断字符串是否符合指定的正则表达式
*/

代码
1.      function f_check_formatStr(obj)   
2.      {   
3.          var str = obj.value;   
4.          var dtype = obj.eos_datatype;   
5.          var regu = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));    //指定的正则表达式   
6.          var re = new RegExp(regu);   
7.          if(re.test(str))   
8.              return true;   
9.          f_alert(obj , "不符合指定的正则表达式要求");   
10.       return false;      
11.   }   
12.      


/*
功能:判断是否为日期(格式:yyyy年MM月dd日,yyyy-MM-dd,yyyy/MM/dd,yyyyMMdd)
提示信息:未输入或输入的日期格式错误!
使用:f_check_date(obj)
返回:bool
*/

代码
1.      function f_check_date(obj)   
2.      {   
3.          var date = Trim(obj.value);   
4.          var dtype = obj.eos_datatype;   
5.          var format = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));  //日期格式   
6.          var year,month,day,datePat,matchArray;   
7.        
8.          if(/^(y{4})(-|//)(M{1,2})/2(d{1,2})$/.test(format))   
9.              datePat = /^(/d{4})(-|//)(/d{1,2})/2(/d{1,2})$/;   
10.       else if(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/.test(format))   
11.           datePat = /^(/d{4})年(/d{1,2})月(/d{1,2})日$/;   
12.       else if(format=="yyyyMMdd")   
13.           datePat = /^(/d{4})(/d{2})(/d{2})$/;   
14.       else  
15.       {   
16.           f_alert(obj,"日期格式不对");   
17.           return false;   
18.       }   
19.       matchArray = date.match(datePat);   
20.       if(matchArray == null)    
21.       {   
22.           f_alert(obj,"日期长度不对,或日期中有非数字符号");   
23.           return false;   
24.       }   
25.       if(/^(y{4})(-|//)(M{1,2})/2(d{1,2})$/.test(format))   
26.       {   
27.           year = matchArray[1];   
28.           month = matchArray[3];   
29.           day = matchArray[4];   
30.       } else  
31.       {   
32.           year = matchArray[1];   
33.           month = matchArray[2];   
34.           day = matchArray[3];   
35.       }   
36.       if (month < 1 || month > 12)   
37.       {                
38.           f_alert(obj,"月份应该为1到12的整数");   
39.           return false;   
40.       }   
41.       if (day < 1 || day > 31)   
42.       {   
43.           f_alert(obj,"每个月的天数应该为1到31的整数");   
44.           return false;   
45.       }        
46.       if ((month==4 || month==6 || month==9 || month==11) && day==31)   
47.       {   
48.           f_alert(obj,"该月不存在31号");   
49.           return false;   
50.       }        
51.       if (month==2)   
52.       {   
53.           var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));   
54.           if (day>29)   
55.           {                  
56.               f_alert(obj,"2月最多有29天");   
57.               return false;   
58.           }   
59.           if ((day==29) && (!isleap))   
60.           {                  
61.               f_alert(obj,"闰年2月才有29天");   
62.               return false;   
63.           }   
64.       }   
65.       return true;   
66.   }   
67.      


/*
功能:校验的格式为yyyy年MM月dd日HH时mm分ss秒,yyyy-MM-dd HH:mm:ss,yyyy/MM/dd HH:mm:ss,yyyyMMddHHmmss
提示信息:未输入或输入的时间格式错误
使用:f_check_time(obj)
返回:bool
*/

代码
1.      function f_check_time(obj)   
2.      {   
3.          var time = Trim(obj.value);   
4.          var dtype = obj.eos_datatype;   
5.          var format = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));  //日期格式   
6.          var datePat,matchArray,year,month,day,hour,minute,second;   
7.        
8.          if(/^(y{4})(-|//)(M{1,2})/2(d{1,2}) (HH:mm:ss)$/.test(format))   
9.              datePat = /^(/d{4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/;   
10.       else if(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)(HH时mm分ss秒)$/.test(format))   
11.           datePat = /^(/d{4})年(/d{1,2})月(/d{1,2})日(/d{1,2})时(/d{1,2})分(/d{1,2})秒$/;   
12.       else if(format == "yyyyMMddHHmmss")   
13.           datePat = /^(/d{4})(/d{2})(/d{2})(/d{2})(/d{2})(/d{2})$/;   
14.       else  
15.       {   
16.           f_alert(obj,"日期格式不对");   
17.           return false;   
18.       }   
19.       matchArray = time.match(datePat);   
20.       if(matchArray == null)    
21.       {   
22.           f_alert(obj,"日期长度不对,或日期中有非数字符号");   
23.           return false;   
24.       }   
25.       if(/^(y{4})(-|//)(M{1,2})/2(d{1,2}) (HH:mm:ss)$/.test(format))   
26.       {   
27.           year = matchArray[1];   
28.           month = matchArray[3];   
29.           day = matchArray[4];   
30.           hour = matchArray[5];   
31.           minute = matchArray[6];   
32.           second = matchArray[7];   
33.       } else  
34.       {   
35.           year = matchArray[1];   
36.           month = matchArray[2];   
37.           day = matchArray[3];   
38.           hour = matchArray[4];   
39.           minute = matchArray[5];   
40.           second = matchArray[6];   
41.       }   
42.       if (month < 1 || month > 12)   
43.       {                
44.           f_alert(obj,"月份应该为1到12的整数");   
45.           return false;   
46.       }   
47.       if (day < 1 || day > 31)   
48.       {              
49.           f_alert(obj,"每个月的天数应该为1到31的整数");   
50.           return false;   
51.       }        
52.       if ((month==4 || month==6 || month==9 || month==11) && day==31)   
53.       {            
54.           f_alert(obj,"该月不存在31号");   
55.           return false;   
56.       }        
57.       if (month==2)   
58.       {   
59.           var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));   
60.           if (day>29)   
61.           {                  
62.               f_alert(obj,"2月最多有29天");   
63.               return false;   
64.           }   
65.           if ((day==29) && (!isleap))   
66.           {                  
67.               f_alert(obj,"闰年2月才有29天");   
68.               return false;   
69.           }   
70.       }   
71.       if(hour<0 || hour>23)   
72.       {   
73.           f_alert(obj,"小时应该是0到23的整数");   
74.           return false;   
75.       }   
76.       if(minute<0 || minute>59)   
77.       {   
78.           f_alert(obj,"分应该是0到59的整数");   
79.           return false;   
80.       }   
81.       if(second<0 || second>59)   
82.       {   
83.           f_alert(obj,"秒应该是0到59的整数");   
84.           return false;   
85.       }   
86.       return true;   
87.   }   
88.      


/*
判断当前对象是否可见*/

代码
1.      function isVisible(obj){   
2.          var visAtt,disAtt;   
3.          try{   
4.              disAtt=obj.style.display;   
5.              visAtt=obj.style.visibility;   
6.          }catch(e){}   
7.          if(disAtt=="none" || visAtt=="hidden")   
8.              return false;   
9.          return true;   
10.   }   
11.      


/*
判断当前对象及其父对象是否可见*/

代码
1.      function checkPrVis(obj){   
2.          var pr=obj.parentNode;   
3.          do{   
4.              if(pr == undefined || pr == "undefined") return true;   
5.              else{   
6.                  if(!isVisible(pr)) return false;   
7.              }   
8.          }while(pr=pr.parentNode);   
9.          return true;   
10.   }   
11.      


/*
弹出警告对话框,用户点确定后将光标置于出错文本框上, 并且将原来输入内容选中。*/

代码
1.      function f_alert(obj,alertInfo)   
2.      {   
3.          var caption = obj.getAttribute("eos_displayname");   
4.          if(caption == null)   
5.              caption = "";   
6.          alert(caption + "" + alertInfo + "");    
7.          obj.select();   
8.          if(isVisible(obj) && checkPrVis(obj))   
9.              obj.focus();   
10.   }   
11.      


/**
*
检测字符串是否为空
*/

代码
1.      function isnull(str)   
2.      {   
3.          var i;   
4.          if(str.length == 0)   
5.              return true;   
6.          for (i=0;i<str.length;i++)   
7.          {   
8.              if (str.charAt(i)!=' ')    
9.                  return false;   
10.       }   
11.       return true;   
12.   }   
13.      


/**
*
检测指定文本框输入是否合法。
* 如果用户输入的内容有错,则弹出提示对话框,
* 同时将焦点置于该文本框上,并且该文本框前面
* 会出现一个警告图标(输入正确后会自动去掉)。
*/

代码
1.      function checkInput(object)   
2.      {   
3.          var image;   
4.          var i;   
5.          var length;   
6.        
7.          if(object.eos_maxsize + "" != "undefined") length = object.eos_maxsize;   
8.          else length = 0;   
9.        
10.       if (object.eos_isnull=="true" && isnull(object.value))  return true;   
11.     
12.       /* 长度校验 */  
13.       if(length != 0 && strlen(object.value) > parseInt(length)) {   
14.               f_alert(object, "超出最大长度" + length);   
15.               return false;   
16.       }    
17.       /* 数据类型校验 */  
18.       else {   
19.           if (object.eos_datatype + "" != "undefined")   
20.           {          
21.     
22.               var dtype = object.eos_datatype;   
23.               var objName = object.name;   
24.               //如果类型名后面带有括号,则视括号前面的字符串为校验类型   
25.               if(dtype.indexOf("(") != -1)   
26.                   dtype = dtype.substring(0,dtype.indexOf("("));   
27.               //根据页面元素的校验类型进行校验   
28.               try{   
29.                   if(eval("f_check_" + dtype + "(object)") != true)   
30.                       return false;   
31.               }catch(e){return true;}   
32.               /*  如果form中存在name前半部分相同,并且同时存在以"min"和"max"结尾的表单域,  
33.                   那么视为按区间查询。即"min"结尾的表单域的值要小于等于"max"结尾的表单域的值。 */  
34.               if(objName.substring((objName.length-3),objName.length)=="min")   
35.               {   
36.                   var objMaxName = objName.substring(0, (objName.length-3)) + "max";   
37.                   if(document.getElementById(objMaxName) != undefined && document.getElementById(objMaxName) != "undefined" )   
38.                   {   
39.                       if(checkIntervalObjs(object, document.getElementById(objMaxName)) != true)   
40.                           return false;                      
41.                   }   
42.               }              
43.           }   
44.       }   
45.       return true;   
46.   }   
47.      


/*
检测表单中所有输入项的正确性,一般用于表单的onsubmit事件 */

代码
1.      function checkForm(myform)   
2.      {   
3.          var i;   
4.          for (i=0;i<myform.elements.length;i++)   
5.          {   
6.              /* 非自定义属性的元素不予理睬 */        
7.              if (myform.elements[i].eos_displayname + "" == "undefined") continue;   
8.              /* 非空校验 */  
9.              if (myform.elements[i].eos_isnull=="false" && isnull(myform.elements[i].value)){   
10.               f_alert(myform.elements[i],"不能为空");   
11.               return false;   
12.           }          
13.           /* 数据类型校验 */  
14.           if (checkInput(myform.elements[i])==false)   
15.               return false;                  
16.       }   
17.       return true;   
18.   }   
19.      


/**
*
校验两个表单域数据的大小,目前只允许比较日期和数字。
* @param obj1 小值表单域
* @param obj2 大值表单域
*/

代码
1.      function checkIntervalObjs(obj1 , obj2)   
2.      {      
3.          var caption1 = obj1.getAttribute("eos_displayname");   
4.          var caption2 = obj2.getAttribute("eos_displayname");   
5.          var val1 = parseFloat(obj1.value);   
6.          var val2 = parseFloat(obj2.value);   
7.          // 非自定义属性的元素不予理睬   
8.          if (obj1.eos_displayname + "" == "undefined" || obj2.eos_displayname + "" == "undefined") {   
9.              return false;   
10.       }   
11.       // 日期类型的比较   
12.       if(f_check_date(obj1) == true && f_check_date(obj2) == true){   
13.           var dtype = obj1.eos_datatype;   
14.           var format = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));  //日期格式   
15.           val1 = getDateByFormat(obj1.value, format);   
16.           dtype = obj2.eos_datatype;   
17.           format = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));  //日期格式   
18.           val2 = getDateByFormat(obj2.value, format);   
19.           if(val1 > val2){   
20.           obj2.select();   
21.           if(isVisible(obj) && checkPrVis(obj))   
22.               obj2.focus();   
23.           alert(caption1 + "的起始日期不能大于其终止日期!");   
24.           return false;   
25.           }   
26.       }   
27.       // 数字类型的比较   
28.       if((isNaN(val1) && !isnull(val1)) || (isNaN(val2) && !isnull(val2))){   
29.           alert(caption1 + "的值不全为数字则不能比较!");   
30.           return false;   
31.       }   
32.       if(val1 > val2){   
33.           obj2.select();   
34.           if(isVisible(obj) && checkPrVis(obj))   
35.               obj2.focus();   
36.           alert(caption1 + "的起始值不能大于其终止值!");   
37.           return false;   
38.       }   
39.       return true;   
40.   }   
41.      

/*根据日期格式,将字符串转换成Date对象。
格式:yyyy-年,MM-月,dd-日,HH-时,mm-分,ss-秒。
(格式必须写全,例如:yy-M-d,是不允许的,否则返回null;格式与实际数据不符也返回null。)
默认格式:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd。*/

代码
1.      function getDateByFormat(str){   
2.          var dateReg,format;   
3.          var y,M,d,H,m,s,yi,Mi,di,Hi,mi,si;   
4.          if((arguments[1] + "") == "undefined") format = "yyyy-MM-dd HH:mm:ss";   
5.          else format = arguments[1];   
6.          yi = format.indexOf("yyyy");   
7.          Mi = format.indexOf("MM");   
8.          di = format.indexOf("dd");   
9.          Hi = format.indexOf("HH");   
10.       mi = format.indexOf("mm");   
11.       si = format.indexOf("ss");   
12.       if(yi == -1 || Mi == -1 || di == -1) return null;   
13.       else{   
14.           y = parseInt(str.substring(yi, yi+4));   
15.           M = parseInt(str.substring(Mi, Mi+2));   
16.           d = parseInt(str.substring(di, di+2));   
17.       }   
18.       if(isNaN(y) || isNaN(M) || isNaN(d)) return null;   
19.       if(Hi == -1 || mi == -1 || si == -1) return new Date(y, M-1, d);   
20.       else{   
21.           H = str.substring(Hi, Hi+4);   
22.           m = str.substring(mi, mi+2);   
23.           s = str.substring(si, si+2);   
24.       }   
25.       if(isNaN(parseInt(y)) || isNaN(parseInt(M)) || isNaN(parseInt(d))) return new Date(y, M-1, d);   
26.       else return new Date(y, M-1, d,H, m, s);   
27.   }   
28.      


/*LTrim(string):
去除左边的空格*/

代码
1.      function LTrim(str){   
2.          var whitespace = new String(" /t/n/r");   
3.          var s = new String(str);      
4.        
5.          if (whitespace.indexOf(s.charAt(0)) != -1){   
6.              var j=0, i = s.length;   
7.              while (j < i && whitespace.indexOf(s.charAt(j)) != -1){   
8.                  j++;   
9.              }   
10.           s = s.substring(j, i);   
11.       }   
12.       return s;   
13.   }   
14.      


/*RTrim(string):
去除右边的空格*/

代码
1.      function RTrim(str){   
2.          var whitespace = new String(" /t/n/r");   
3.          var s = new String(str);   
4.          
5.          if (whitespace.indexOf(s.charAt(s.length-1)) != -1){   
6.              var i = s.length - 1;   
7.              while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1){   
8.                  i--;   
9.              }   
10.           s = s.substring(0, i+1);   
11.       }   
12.       return s;   
13.   }   
14.      


/*Trim(string):
去除字符串两边的空格*/

代码
1.      function Trim(str){   
2.          return RTrim(LTrim(str));   
3.      }    
4.