/* 根据传入的类型返回正则表达式,如果类型不存在则返回空。 */ function regex(type) { /*验证是否数字 /^[4|1|2|3|5|6|7|8|9]\d+$/; */ if (type == 'int') return /^\d+$/; /*验证是否是大于0的整数*/ if(type=='sum') return /^[1|2|3|4|5|6|7|8|9]\d{0,10}$/; /*email校验*/ if (type == 'email') return /^\w+@\w+\.\w+/; /*15位身份证*/ if (type == 'cert15') return /^\d{15}$/; /*18位身份证*/ if (type == 'cert18') return /^\d{17}[0-9Xx]{1}$/; /* 只能输入ASCII字符(非空)*/ if (type == 'ascii') return /^\w+$/; /* 日期校验 yyyy-mm-dd*/ if (type == 'date(yyyy-mm-dd)') return /^\d{4}-[01]{1}\d{1}-[0123]{1}\d{1}$/; /* 日期校验 yyyy/mm/dd*/ if (type == 'date(yyyy/mm/dd)') return /^\d{4}\/[01]{1}\d{1}\/[0123]{1}\d{1}$/; /* 浮点数精度定义*/ if (type == 'float(2)') return /^\d+\.{0,1}\d{0,2}$/; /* 邮编 */ if (type == 'postcode') return /^\d{6}$/; /* 移动电话 */ if (type == 'mobphone') return /^[1][3][0|1|2|3|5|6|7|8|9]\d{8}$/; /* 固定电话 */ if (type == 'phone') return /^[1|2|3|4|5|6|7|8|9]\d{6,7}$/; /* 电话地区号 */ if (type == 'areacode') return /^[0][1|2|3|4|5|6|7|8|9]\d{1,2}$/; /* 日期校验 yyyy-mm*/ if (type == 'billingcycl') return /^\d{4}-[01]{1}\d{1}$/; return ''; } /* 校验是否输入正确的业务号码 v1 业务号码 v2 网别 */ function validate(v1,v2){ v2 = v2.trim(); v1 = v1.trim(); var pat = new Array(); pat["A"] = /^[1][3][0|1|2|3]\d{8}$/; pat["P"] = /^\d+\d{8}$/; pat["E"] = /^\S+$/; pat["G"] = /^[1][3][0|1|2]\d{8}$/; pat["C"] = /^[1][3][3]\d{8}$/; pat["M"] = /^[1][3][0|1|2|3]\d{8}$/; var ret = pat[v1].exec(v2); if(!ret) return false; return true; } /* 用正则表达式去掉字符串前后的空格 */ String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } /* 验证证件类型和证件号码是否合法 type: 证件类型 num: 证件号码 */ function check_certnum(type,num) { if(num.value.length == 0) return true; if(type.value == null || type.value == "") { alert("证件类型不能为空"); type.focus(); return false; } //十五位身份证验证 if(type.value == '10') { if (num.value.length != 15){ alert("身份证输入错误必须输入15位有效数字!"); num.value = ""; num.focus(); return false; } var thePat=/[0-9]{15}/; var gotIt = thePat.test(num.value); if (!gotIt) { alert("身份证输入错误"); num.value = ""; num.focus(); return false; } } //十八位身份证验证 if(type.value == '11') { if (num.value.length != 18){ alert("身份证输入错误必须输入18位有效数字!"); num.value = ""; num.focus(); return false; } var thePat=/[0-9]{17}[0-9Xx]{1}/; var gotIt = thePat.test(num.value); if (!gotIt) { alert("身份证输入错误"); num.value = ""; num.focus(); return false; } } return true; } function checkmoney(para,Desc) { var pat1 = /^\d+\.\d{2}$/; var pat2= /^\d+\.\d{1}$/; var pat3= /^\d+$/; var ret1 = pat1.test(para.value); var ret2 = pat2.test(para.value); var ret3 = pat3.test(para.value); if (ret1||ret2||ret3) { return true; } else { alert(Desc); //清空数据 para.value = ''; //设置焦点 para.focus(); return false; } } /* 接收Enter键输入, 使焦点指向对象a下一个可见且没有被disable的对象 a: 页面上的HTML元素名,一般直接写this即可 */ function keyDown(a) { var key=window.event.keyCode; var form; form = document.forms[0]; if (key == 13) { for (k = 0 ; k < form.length ;k++) if (form.elements[k] == a) i = k + 1; if (i == form.length) return; while(form.elements[i].disabled == true || form.elements[i].type == 'hidden' || form.elements[i].type == 'button') { i++; if (i == form.length) return; } form.elements[i].focus(); } } /* 校验用户两次输入的密码是否相同 t1: 密码 t2: 重新输入的密码 */ function check_pwd(t1,t2) { var pat = /^\d{6}$/; if(t1.value=="" && t2.value == "") return true; var ret = pat.exec(t1.value); if(!ret) { alert("密码必须是6位数字!"); t1.value = ""; t2.value = ""; t1.focus(); return false; } if(t1.value != t2.value) { alert("两次输入的密码不同,请重新输入!"); t1.value = ""; t2.value = ""; t1.focus(); return false; } return true; } /* mask函数实现对于定制类型的HTML元素的校验 参数说明: 1、ElementName : 页面上的HTML元素名,一般直接写this即可 2、Type:要校验的类型,系统预定义了一些类型,可以写,也可以自己定义正则表达式。 3、ErrDesc:错误描述,如果校验不通过显示的提示内容。 函数使用位置: 该函数一般在元素的onblur事件中触发 */ function mask(ElementName,Type,ErrDesc) { //如果该元素没有任何数据,则不需要校验 if (ElementName.value.length == 0) { return true; } //如果类型没有指定则不做任何限制 if (Type.length == 0) return true; var pat = regex(Type); if (pat == '') { pat = Type; } var ret = pat.test(ElementName.value); if (ret) { return true; } else { //显示错误描述 if (ErrDesc == null || ErrDesc == "") { alert("该值不合法!"); } else { alert(ErrDesc); } //清空数据 ElementName.value = ''; //设置焦点 ElementName.focus(); return false; } } /* 非空校验的函数 */ function IsNull(FormName) { var form; if (FormName == "" || FormName == null){ form = document.forms[0]; }else{ form = FormName; } //遍历form元素 for (i = 0 ; i < form.length ;i++){ if (form.elements[i].NullCheck == '1' && form.elements[i].value == '' && form.elements[i].disabled == false){ if (form.elements[i].ErrDesc == null || form.elements[i].ErrDesc == ''){ alert("该值不能为空!!"); }else{ alert(form.elements[i].ErrDesc); } form.elements[i].focus(); return true; } } return false; } /* 用来建立临时数组的对象 */ function OBJECT_TEMP(a,b,c){ this.myArray = a; this.col = b; this.id = c; } /* 根据传入的对象的名称、过滤的列的名称、以及列的值返回一个过滤后的对象 Obj是数据对象,(不是字符串,请不要用引号或者双引号),如果只知道名称可以通过调用getobjectbyname('对象名称')来获取 */ function getvalue(Obj,ColName,ColVal) { var a = new Array(); var b = new Array(); var irow = 0; var flag = 0; //创建列数组 for (var i=0;i<Obj.col.length;i++) { a[i] = new Array(); } for (var i=0;i<Obj.col.length;i++) { if (Obj.col[i] == ColName.toUpperCase()) { flag++; for (var j=0;j<Obj.myArray[i].length;j++) { if (Obj.myArray[i][j] == ColVal) { b[irow] = Obj.id[j]; for (var k = 0;k<Obj.col.length;k++) { a[k][irow] = Obj.myArray[k][j]; } irow++; } } break; } else { continue; } } if (flag == 0) { alert("列名" + ColName + "不存在!"); return false; } var temp = new OBJECT_TEMP(a,Obj.col,b); return temp; } /* 根据对象来生成下拉列表框中的数据 type的取值: rewrite (把下拉框中的所有数据清理,然后加数据) (默认值) append (如果有重复的自动过滤) Obj是数据对象,(不是字符串,请不要用引号或者双引号),如果只知道名称可以通过调用getobjectbyname('对象名称')来获取 listname是下拉列表框的名称(不是字符串,请不要用引号或者双引号) */ function filldata(Obj,listname,datacolumn,displaycolumn,type) { //查找数据列和显示列是否存在 var idata = 0,idispaly = 0,flag1 = false,flag2 = false; for (var i=0;i<Obj.col.length;i++) { if (Obj.col[i] == datacolumn.toUpperCase()) { idata = i; flag1 = true; } if (Obj.col[i] == displaycolumn.toUpperCase()) { idisplay = i; flag2 = true; } } if (flag1 == false) { alert("数据列" + datacolumn + "不存在"); return false; } if (flag2 == false) { alert("显示列" + displaycolumn + "不存在"); return false; } //判断是否是追加类型 if (type==null || type=="" || type.toUpperCase()!="APPEND") { //清空下拉列表框中的所有数据 deldata(listname); } var j = 0; var len = 0; var flag; //从对象中取数据,并填写到下拉列表中 for (var i=0;i<Obj.id.length;i++) { flag = false; len = listname.length; for (j=0;j<len;j++) { if (listname.options[j].id == Obj.id[i]) { flag = true; break; } } //如果在下拉列表中没有找到,则添加,否则继续 if (flag == false) { listname.length = len + 1; listname.options[len].value = Obj.myArray[idata][i]; listname.options[len].text = Obj.myArray[idisplay][i]; listname.options[len].id = Obj.id[i]; } } return true; } /* 根据下拉框来和对应的数据对象来生成一个新的对象,下拉列表框中有几条数据,将生成几条数据 listname是下拉列表框的名称(不是字符串,请不要用引号或者双引号) */ function createobj(listname) { if (listname.name == null || listname.name == "") { alert("请为列表框指定名称(name属性)!"); return false; } if (listname.datacolumn == null || listname.datacolumn == "") { alert("请为列表框指定数据列(datacolumn属性)!"); return false; } if (listname.displaycolumn == null || listname.displaycolumn == "") { alert("请为列表框指定显示列(displaycolumn属性)!"); return false; } var rtn = eval((listname.name + "_OBJECT").toUpperCase()); var tt = new rtn; var a = new Array(); var b = new Array(); var id = 0; var irow = 0; var count = 0; //创建列数组 for (var i=0;i<tt.col.length;i++) { a[i] = new Array(); } //从下拉框中查找ID,然后根据ID到数组中提取数据 for (var list=0;list<listname.options.length;list++) { id = listname.options[list].id; if (id == "" || id == null) { continue; } var flag = false; //根据ID查找记录号 for (var i=0;i<tt.id.length;i++) { if (tt.id[i] == id) { irow = i; flag = true; } } //如果没有找到该id,则忽略 if (flag == false) continue; b[count] = id; for (var i=0;i<tt.col.length;i++) { a[i][count] = tt.myArray[i][irow]; } count++; } var temp = new OBJECT_TEMP(a,tt.col,b); return temp; } /* 根据下拉列表框中被选择的数据(可能是多选的情况)生成一个新的数据对象 listname是下拉列表框的名称(不是字符串,请不要用引号或者双引号) */ function createobjbysel(listname) { if (listname.name == null || listname.name == "") { alert("请为列表框指定名称(name属性)!"); return false; } if (listname.datacolumn == null || listname.datacolumn == "") { alert("请为列表框指定数据列(datacolumn属性)!"); return false; } if (listname.displaycolumn == null || listname.displaycolumn == "") { alert("请为列表框指定显示列(displaycolumn属性)!"); return false; } var rtn = eval((listname.name + "_OBJECT").toUpperCase()); var tt = new rtn; var a = new Array(); var b = new Array(); var id = 0; var irow = 0; var count = 0; //创建列数组 for (var i=0;i<tt.col.length;i++) { a[i] = new Array(); } //从下拉框中查找ID,然后根据ID到数组中提取数据 for (var list=0;list<listname.options.length;list++) { if (listname.options[list].selected == true) { id = listname.options[list].id; if (id == "" || id == null) { continue; } var flag = false; //根据ID查找记录号 for (var i=0;i<tt.id.length;i++) { if (tt.id[i] == id) { irow = i; flag = true; } } //如果没有找到该id,则忽略 if (flag == false) continue; b[count] = id; for (var i=0;i<tt.col.length;i++) { a[i][count] = tt.myArray[i][irow]; } count++; } } var temp = new OBJECT_TEMP(a,tt.col,b); return temp; } /* 根据数据对象和列名获取列的序号。 */ function getcol(obj,colname) { for (var i=0;i<obj.col.length;i++) { if (obj.col[i] == colname.toUpperCase()) { return i; } } alert("列" + colname + "不存在!"); return -1; } /* 根据ID从数据对象中查询对应的记录数 */ function getrow(obj,idvalue) { if (idvalue == null || idvalue == "") { alert("不存在该行!"); return -1; } for (var i=0;i<obj.id.length;i++) { if (obj.id[i] == idvalue) { return i; } } alert("不存在该行!"); return -1; } //返回列表框中被选择的ID function getid(listname) { for (var i=0;i<listname.options.length;i++) { if (listname.options[i].selected == true) { return listname.options[i].id; } } return -1; } /* 根据数据对象、ID的值和列名获取数据。 */ function getvaluebyid(obj,idvalue,colname) { var row = getrow(obj,idvalue); if (row == -1) return false; var col = getcol(obj,colname); if (col == -1) return false; return obj.myArray[col][row]; } //删除下拉列表中的数据 function deldata(listname) { //清空下拉列表框中的所有数据 for (var i = listname.options.length-1 ; i >= 0 ; i--) { listname.options[i] = null; } listname.length = 0; } //根据列表框来获取该列表框的所对应的数据对象,针对下拉框和数据对象绑定的情况 function getobject(listname) { if (listname.name == null || listname.name == "") { alert("请为列表框指定名称(name属性)!"); return false; } if (listname.datacolumn == null || listname.datacolumn == "") { alert("请为列表框指定数据列(datacolumn属性)!"); return false; } if (listname.displaycolumn == null || listname.displaycolumn == "") { alert("请为列表框指定显示列(displaycolumn属性)!"); return false; } try{ var rtn = eval((listname.name + "_OBJECT").toUpperCase()); var tt = new rtn; return tt; }catch(e) { alert("该列表框没有和数据对象绑定或绑定错误,请检查!"); return false; } } /* 1、这个主要是在创建的不和下拉框绑定的数据对象的时候,要访问这些对象可以使用该方法 根据数据对象的名称来获取数据对象 2、如果知道数据对象的名称,也可以通过该方法来得到对应的数据对象 */ function getobjectbyname(dataname) { if (dataname == null || dataname == "") { alert("数据对象的名称不能为空!"); return false; } try{ var rtn = eval((dataname + "_OBJECT").toUpperCase()); var tt = new rtn; return tt; }catch(e) { alert("对不起,您要访问的数据对象不存在!"); return false; } } /* 根据当前选中的数值过滤另外一个下拉框 curlistname当前选择的列表名 curfiltercol用来作为过滤值的列名 listname:被过滤的列表的名称 filtercolumn:过滤列 datacol:数据列 display:显示列 */ function filterlist(curlistname,curfiltercol,listname,filtercolumn,datacol,display) { //根据当前下拉列表创建对象 var cur = getobject(curlistname); if (cur == false) return false; //获取选中行的ID var id = getid(curlistname); if (id == -1) return false; //如果ID为空,则清空被过滤的列表的数据 if (id == null || id == "") { deldata(listname); return false; } //获取数据 var data = getvaluebyid(cur,id,curfiltercol); if (data == false) return false; var obj = getobject(listname); if (obj == false) return false; //根据条件查询满足条件的数据 var rtn = getvalue(obj,filtercolumn,data); if (rtn == false) return false; //填写数据到下拉列表中 var tt = filldata(rtn,listname,datacol,display); if (tt == false) return false; } //根据指定列、以及指定的列的值来过滤下拉列表 function filterbycol(colname,colvalue,listname,datacol,display) { //查找列表框对象 var obj = getobject(listname); if (obj == false) return false; //根据条件查询满足条件的数据 var rtn = getvalue(obj,colname,colvalue); if (rtn == false) return false; //填写数据到下拉列表中 var tt = filldata(rtn,listname,datacol,display); if (tt == false) return false; } //根据指定列、以及指定的列的值来过滤下拉列表 function filldatafilter(colname,colvalue,listname,obj,datacol,display) { //根据条件查询满足条件的数据 var rtn = getvalue(obj,colname,colvalue); if (rtn == false) return false; //填写数据到下拉列表中 var tt = filldata(rtn,listname,datacol,display); if (tt == false) return false; } function _selectAll(obj,self) { if (obj) { if (obj.length) { for (var i=0; i<obj.length; i++) { obj[i].checked=self.checked; } } else { obj.checked=self.checked; } } } function parseExcel(obj){ var exceldata = obj.innerHTML; document.all.exceldata.value=exceldata; document.forms[0].action="/servlet/ParseExcel"; document.forms[0].target="_blank"; document.forms[0].submit(); } // Function Name: trim // Function Description: 去除字符串的首尾的空格 // Creation Date: 2004-7-13 15:30 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.trim=function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); } // Function Name: ltrim // Function Description: 去除字符串的左侧的空格 // Creation Date: 2004-7-13 9:58 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.ltrim=function() { return this.replace(/(^\s*)/g, ""); } // Function Name: rtrim // Function Description: 去除字符串的右侧的空格 // Creation Date: 2004-7-13 15:31 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.rtrim=function() { return this.replace(/(\s*$)/g, ""); } // Function Name: len // Function Description: 返回字符串的实际长度, 一个汉字算2个长度 // Creation Date: 2004-7-13 9:58 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.len=function() { var str=this; return str.replace(/[^\x00-\xff]/g, "**").length } // Function Name: isValidDate // Function Description: 判断输入是否是有效的短日期格式 - "YYYY-MM-DD" // Creation Date: 2004-7-13 9:58 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidDate=function() { var result=this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); if(result==null) return false; var d=new Date(result[1], result[3]-1, result[4]); return (d.getFullYear()==result[1]&&d.getMonth()+1==result[3]&&d.getDate()==result[4]); } // Function Name: isValidTime // Function Description: 判断输入是否是有效的时间格式 - "HH:MM:SS" // Creation Date: 2004-7-13 9:58 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidTime=function() { var resule=this.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); if (result==null) return false; if (result[1]>24 || result[3]>60 || result[4]>60) return false; return true; } // Function Name: isValidEmail // Function Description: 判断输入是否是有效的电子邮件 // Creation Date: 2004-7-13 9:59 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidEmail=function() { var result=this.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/); if(result==null) return false; return true; } // Function Name: isValidDatetime // Function Description: 判断输入是否是有效的长日期格式 - "YYYY-MM-DD HH:MM:SS" // Creation Date: 2004-7-13 9:59 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidDatetime=function() { var result=this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/); if(result==null) return false; var d= new Date(result[1], result[3]-1, result[4], result[5], result[6], result[7]); return (d.getFullYear()==result[1]&&(d.getMonth()+1)==result[3]&&d.getDate()==result[4]&&d.getHours()==result[5]&&d.getMinutes()==result[6]&&d.getSeconds()==result[7]); } // Function Name: isValidInteger // Function Description: 判断输入是否是一个整数 // Creation Date: 2004-7-13 10:01 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidInteger=function() { var result=this.match(/^(-|\+)?\d+$/); if(result==null) return false; return true; } // Function Name: isValidPositiveInteger // Function Description: 判断输入是否是一个正整数 // Creation Date: 2004-7-13 10:01 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidPositiveInteger=function() { var result=this.match(/^\d+$/); if(result==null) return false; if(parseInt(this)>0) return true; return false; } // Function Name: isValidNegativeInteger // Function Description: 判断输入是否是一个负整数 // Creation Date: 2004-7-13 10:28 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidNegativeInteger=function() { var result=this.match(/^-\d+$/); if(result==null) return false; return true; } // Function Name: isValidNumber // Function Description: 判断输入是否是一个数字 // Creation Date: 2004-7-13 10:01 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidNumber=function() { return !isNaN(this); } // Function Name: isValidLetters // Function Description: 判断输入是否是一个由 A-Z / a-z 组成的字符串 // Creation Date: 2004-7-13 10:10 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidLetters=function() { var result=this.match(/^[a-zA-Z]+$/); if(result==null) return false; return true; } // Function Name: isValidDigits // Function Description: 判断输入是否是一个由 0-9 组成的数字 // Creation Date: 2004-7-13 10:10 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidDigits=function() { var result=this.match(/^[1-9][0-9]+$/); if(result==null) return false; return true; } // Function Name: isValidAlphanumeric // Function Description: 判断输入是否是一个由 0-9 / A-Z / a-z 组成的字符串 // Creation Date: 2004-7-13 10:14 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidAlphanumeric=function() { var result=this.match(/^[a-zA-Z0-9]+$/); if(result==null) return false; return true; } // Function Name: isValidString // Function Description: 判断输入是否是一个由 0-9 / A-Z / a-z / . / _ 组成的字符串 // Creation Date: 2004-7-13 10:20 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidString=function() { var result=this.match(/^[a-zA-Z0-9\s.\-_]+$/); if(result==null) return false; return true; } // Function Name: isValidPostalcode // Function Description: 判断输入是否是一个有效的邮政编码 // Creation Date: 2004-7-13 10:22 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidPostalcode=function() { var result=this.match(/(^[0-9]{6}$)/); if(result==null) return false; return true; } // Function Name: isValidPhoneNo // Function Description: 判断输入是否是一个有效的电话号码 // Creation Date: 2004-7-13 10:22 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidPhoneNo=function() { var result=this.match(/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)/); if(result==null) return false; return true; } // Function Name: isValidMobileNo // Function Description: 判断输入是否是一个有效的手机号码 // Creation Date: 2004-7-13 10:23 // Last Modify By: N/A // Last Modify Date: N/A String.prototype.isValidMobileNo=function() { var result=this.match(/(^0{0,1}13[0-9]{9}$)/); if(result==null) return false; return true; } function checkLength(obj, length) { if (obj.value.len()>length) { alert("您输入的字符超长!"); obj.focus(); return false; } return true; } function notSelected(id) { var count=0; var obj = document.all[id]; if (obj) { if (obj.length) { for (var i=0; i<obj.length; i++) { if (obj[i].checked==true) { count++; } } } else { if (obj.checked==true) { count++; } } } if (count==0) { return true; } return false; }