/************************************ purpose : 禁止右键 ************************************/ //document.oncontextmenu=norightmenu function norightmenu(){ window.event.returnvalue=false } /************************************ method : trim() purpose : 先将全角空格替换为半角空格,然后除去字符串头尾的空格。 parameters : return value : 除去头尾空格的字符串 用法: var tmpstr = "abc "; tmpstr = tmpstr.trim(); ************************************/ string.prototype.trim = function() { return this.replace(/ /g, " ").replace(/(^\s*)|(\s*$)/g, ""); } /************************************ method : fucchecknum(num) purpose : 检查字符串中是否有非数字字符。 parameters : 待查字符串 return value : 0-有非数字字符;1-全是数字 ************************************/ function fucchecknum(num) { var re=/^(-|\+)?\d+(\.\d+)?$/; if(!re.test(num)){return 0}else{return 1;} } /************************************ method : operate(url,target) purpose : 打开url指定的页面。 parameters : url-待打开的页面地址;target-显示方式 return value : ************************************/ function operate(url,target) { window.open(url,target); } /************************************ method : trim(strinput) purpose : 除去字符串头尾的空格。 parameters : return value : 除去头尾空格的字符串 ************************************/ function trim(strinput) { var iloop=0; var iloop2=-1; var strchr; //if(strvalue == null) if((strinput == null)||(strinput == "")) return ""; if(strinput) { for(iloop=0;iloop=0;iloop2--) { strchr=strinput.charat(iloop2); if(strchr!=' ') break; } } if(iloop<=iloop2) { return strinput.substring(iloop,iloop2+1); } else { return ""; } } /************************************ method : checkchar() purpose : 禁止非法字符的输入,可扩展,后面带非法字符数组。 parameters : return value : ************************************/ function checkchar() { var ikey = event.keycode; if (ikey==222) {return false;} //非法字符"'" } /************************************ method : checknum() purpose : 禁止非数字的输入。 parameters : return value : ************************************/ function checknum() { var ikey = event.keycode; if ((ikey==8) ||(ikey==46) ||(ikey==190)) { return true;} //--delete or space keydown if (event.keycode==13) { event.keycode = 9; return true; } if ((ikey<48) || ((ikey>57)&&(ikey<96)) || (ikey>105)) {return false;} //非数字 } /************************************ method : pastenum() purpose : 禁止非数字的拷贝。 parameters : return value : ************************************/ function pastenum(){ clipboarddata.setdata('text',clipboarddata.getdata('text').replace(/[^\d]/g,'')) } /************************************ method : text_trim( str, methods ) purpose : 有条件的去除空格。 parameters : str-待处理字符串 methods-处理字符串的方式 "left"-除去字符串头部空格 "right"-除去字符串尾部空格 "both"-除去字符串头尾空格 return value : 安条件除去了空格的字符串 ************************************/ function text_trim( str, methods ){ var s; var len = str.length; if ( str == "" ) return str; if ( methods.tolowercase() == "left" || methods.tolowercase() == "both" ){ for ( var j = 0; j < str.length; j++ ) { s = str.substring(j, j+1); if ( s == " " || s == " "){ str = str.substr( j+1, str.length-1 ); j--; }else break; } } if ( methods.tolowercase() == "right" || methods.tolowercase() == "both" ){ for ( var j = str.length; j > 0; j-- ) { s = str.substring(j-1, j); if ( s == " " || s == " "){ str = str.substr( 0, j-1 ); }else break; } } return str; } /************************************ method : len() purpose : 计算中英文混合字符串的长度。 parameters : return value : 字符串长度,一个汉字是两个字符 用法: var tmpstr = "abc字符串"; alert(tmpstr.len()); ************************************/ string.prototype.len=function() { return this.replace(/[^\x00-\xff]/g,"**").length; } /************************************ method : checkinput(formobject) purpose : 对字符,数字,日期输入进行检查。 parameters : form表单对象 return value : true or false 验证成功返回true 用法: if (checkinput(form)){ form.submit(); } ************************************/ function checkinput(formobject) { try { var l_childs = formobject.elements; var l_child;//input 对象 var l_isnull;//是否可以为空 var l_label;//出错后显示的名字 var l_kind;//类型date,number,email var l_name; var l_value; var l_decima; var l_fieldtype; var l_init; var l_length; var l_type; var permitedenchars = "qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm1234567890-_"; for(var i=0;i length) { alert("\"" + l_label + "\"" +"最多只能输入"+length + "个字符(" + length/2 + "个汉字)!"); l_child.focus(); return false; } } } if(l_child.nodename.tolowercase() == "select") { l_kind = l_child.kind; if(l_kind == null) l_kind = ""; isnull = l_child.isnull; if(isnull == null) isnull = ""; l_label = l_child.label; if(l_label == null) l_label = ""; l_value = l_child.value; if (l_value == null) l_value = ""; if (l_kind == "list") { if(isnull == "false" && l_value == "") { alert("\"" + l_label + "\""+"为必选项!"); return false; } } if (l_kind == "emptybox") { if(isnull == "false" && l_child.options.length == 0) { alert("必须选择\"" + l_label + "\"!"); return false; } } } if(l_child.nodename.tolowercase() == "input" && l_child.type!="file") { l_name = l_child.name; l_isnull = l_child.isnull; l_label = l_child.label; l_kind = l_child.kind; l_value = l_child.value; l_decima = l_child.decima l_fieldtype = l_child.fieldtype l_init = l_child.init; l_length = l_child.maxlength; l_type = l_child.type; if(l_label == null && l_kind == null) continue;//不检查 if(l_label == null) label = ""; if (l_kind != "desc") if (hasdeniesyntax(l_value, l_label)){ l_child.focus(); return false; } if(l_kind != "string_en3") { if(!prohibitbacklash(l_value))return false; } if(l_isnull == "false" && l_value == "") { alert("\"" + l_label + "\"" + "不能为空!"); l_child.focus(); return false; } if(l_value.length > 0)//检查输入是否都是空格 { l_value = l_value.trim(); l_child.value = l_value; if(l_value.length == 0) { alert("\"" + l_label + "\"" +"不能全是空格!"); l_child.focus(); return false; } } if(l_length != null && l_value.length > 0) { if(l_value.len() > l_length) { alert("\"" + l_label + "\"" +"最多只能输入"+l_length + "个字符(" + l_length/2 + "个汉字)!"); l_child.focus(); return false; } } if (l_kind == "number") { l_value = l_value.trim(); l_child.value = l_value; if(fucchecknum(l_value) == 0) { alert("\"" + l_label + "\"" +"必须是数字!"); l_child.focus(); return false; } } if (l_type != null) { if (l_type.tolowercase() == "password" && l_value.length > 0) { l_value = l_value.trim(); l_child.value = l_value; if(!isalphanumeric(l_value)) { alert("\"" + l_label + "\"" +"必须是英文字符或数字!"); l_child.focus(); return false; } } } if (l_kind == "english" && l_value.length > 0) { l_value = l_value.trim(); l_child.value = l_value; if(!isenglish(l_value)) { alert("\"" + l_label + "\"" +"必须是英文字母!"); l_child.focus(); return false; } } if(l_kind == "uppercase") { for (var loop=0; loop "z")){ alert("\"" + l_label + "\"" +"必须为大写英文字母!"); l_child.focus(); return false; } } } //使用模式匹配,检查日期输入 if(l_value != null && l_value.length > 0) { if(l_kind == "string_en") { for(loop=0;loop= 0) { alert(l_label+",内容不能有\\字符"); l_child.focus(); return false; } for(var i=0;i 12) { alert("\"" + l_label + "\"" +"月份不能大于12!"); return false; } else { l_month = eval(l_month)-1; } var l_date = new date(regexp.$1,l_month,regexp.$4); if(l_date.getdate() != regexp.$4) { alert("\"" + l_label + "\"" +"异常,日期\"" + l_value + "\"不存在,请检查。"); l_child.focus(); return false; } if(l_date.getmonth() != l_month) { alert("\"" + l_label + "\"" +"月份异常,格式必须是:yyyy-mm-dd!"); l_child.focus(); return false; } } } else if(l_kind == "int") { var reg = /^(\d+)$/; var r = l_value.match(reg); var reg1 = /^-(\d+)$/; var r1 = l_value.match(reg1); if(r == null && r1 == null) { alert("\"" + l_label + "\"" +"必须是整数!"); l_child.focus(); return false; } } else if(l_kind == "float") { var reg = /^(\d+)\.(\d+)$/; var reg1 = /^(\d+)$/; var r = l_value.match(reg); var r1 = l_value.match(reg1); if(r == null && r1 == null) { alert("\"" + l_label + "\"" +"必须是数字!"); l_child.focus(); return false; } else { var l_maxlength = l_child.maxlength;//浮点数长度 var l_inputdecimallength = (""+regexp.$2).length;//用户输入的小数长度 var l_decimallength = l_child.decimallength;//规定输入的小数最长长度 var l_inputintlength = (""+regexp.$1).length;//用户输入的整数长度 if(l_inputdecimallength != null && l_decimallength != null && l_maxlength != null) { if(l_inputdecimallength > l_decimallength) { alert("\"" + l_label + "\"" +"小数位数不能大于"+l_decimallength+"!"); l_child.focus(); return false; } var l_intlength = l_maxlength-l_decimallength-1;//规定输入的整数最长长度 if(l_inputintlength > l_intlength) { alert("\"" + l_label + "\"" +"整数位数不能大于"+l_intlength+"!"); l_child.focus(); return false; } } } } else if(l_kind == "currency") { var reg = /^(\d+)\.(\d+)$/; var reg1 = /^(\d+)$/; var r = l_value.match(reg); var r1 = l_value.match(reg1); if(r == null && r1 == null) { alert("\"" + l_label + "\"" +"必须是数字!"); l_child.focus(); return false; } var t = l_value.trim().replace(/([-+]?[0-9]+\.?[0-9]{0,4})/,""); if(t.length != 0){ alert("\"" + l_label + "\"" +" 的值必须是一个货币型的数值,\n 整数位最长9位,小数位最长2位!"); return false; } } else if(l_kind == "email") { //var reg = /^(\w+)@(\w+)\.(\w+)$/; var reg = /^(\w+)@(\w+)\.((\w+)(\.{0,1}))*$/; var r = l_value.match(reg); if(r == null) { alert("\"" + l_label + "\"" +"必须符合电子邮件的规范输入!,如xxx@yyyy.zzz"); l_child.focus(); return false; } } else if(l_kind == "tel")//电话 { var reg = /^(((\d+)-)*)((\d+)+)$/; var r = l_value.match(reg); if(r == null) { alert("\"" + l_label + "\"" +"必须符合电话号码的规范输入,如010-11111111-111"); l_child.focus(); return false; } } } if(l_decima == "decimalength") { if(l_child.value!=0 && l_child.value>6) { alert("小数位 最大尺寸不能超过6 \n 请重新输入【小数位】"); return false; } } if(l_fieldtype == "number"){ if(l_child.value==0){ alert("请输入【字段长度】!\n \n注意:不能超过13位"); return false; }else{ if(l_child.value>13){ alert("数值型 字段位数不能超过13位!!\n \n请重新输入【长度】"); return false; } } }else if(l_fieldtype == "varchar2"){ if(l_child.value==0){ alert("请输入【字段长度】!\n \n 注意:不能超过255字节"); return false; }else{ if(l_child.value>254){ alert("文本型 字段不能超过254个字符!!"); return false; } } } if(l_init == "init"){ if(l_childs.fieldtype.value == "number"){ if(l_childs.fieldlength.value==0){ alert("请输入【字段长度】!\n \n注意:不能超过13位"); return false; }else{ if(l_childs.fieldlength.value>13){ alert("数值型 字段长度不能超过13位!!\n \n请重新输入【长度】"); return false; } } }else if(l_childs.fieldtype.value == "varchar2"){ if(l_childs.fieldlength.value==0){ alert("请输入【字段长度】!\n \n 注意:不能超过255字节"); return false; }else{ if(l_childs.fieldlength.value>254){ alert("文本型 字段不能超过254个字符!!\n \n 请重新输入【长度】"); return false; } } } } } } } catch(ex){alert(ex.description);return false;} return true; } /************************************ method : validateinputifhasprohibitedchar(valuestring) purpose : 检查输入是否有敏感字符,如',等。 parameters : 待检查字符串 return value : true or false 不包含敏感字符返回true ************************************/ function validateinputifhasprohibitedchar(valuestring) { if(valuestring == null)return true; if(valuestring.indexof("'") >= 0) { alert("输入不能包括英文的字符'"); return false; } return true; } /************************************ method : prohibitbacklash(valuestring) purpose : 限制反斜杠。 parameters : 待检查字符串 return value : true or false 不包含反斜杠返回true ************************************/ function prohibitbacklash(valuestring) { if(valuestring.indexof("\\") >= 0) { alert("输入不能包括英文的字符\\"); return false; } return true; } /************************************ method : hasdeniesyntax(s,label) purpose : 检查非法字符。 parameters : s-待检查字符串 label-检查项名称,出现在提示信息中 return value : true or false 不包含反斜杠返回true ************************************/ function hasdeniesyntax(s,label){ for(i=0;i" || n=='%'){ alert("\"" + label + "\"" + "中不能含有"+"< > ' \" %"+"等非法字符。"); return true; } } return false; } /************************************ method : isalphanumeric( checkobj) purpose : 检查是否全是字母和数字。 parameters : s-待检查字符串 return value : true or false 全是字母和数字返回true ************************************/ function isalphanumeric( checkobj) { var checkok = "0123456789-_abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"; var checkstr = checkobj; var allvalid = true; var decpoints = 0; for (i = 0; i < checkstr.length; i++) { ch = checkstr.charat(i); for (j = 0; j < checkok.length; j++) if (ch == checkok.charat(j)) break; if (j == checkok.length) { allvalid = false; break; } } return (allvalid) } /************************************ method : isenglish( checkobj) purpose : 检查是否全是英文字母。 parameters : s-待检查字符串 return value : true or false 全是英文字母返回true ************************************/ function isenglish( checkobj) { var checkok = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"; var checkstr = checkobj; var allvalid = true; var decpoints = 0; for (i = 0; i < checkstr.length; i++) { ch = checkstr.charat(i); for (j = 0; j < checkok.length; j++) if (ch == checkok.charat(j)) break; if (j == checkok.length) { allvalid = false; break; } } return (allvalid) } /************************************ method : openwin(url,windowname,width,height,overflow) purpose : 打开一个新的窗口 parameters : pagename – 页面名称 target – 打开窗口位置,为空时打开一个新窗口 width–窗口宽度 heigth– 窗口高度。 sizeable–窗口大小是否可以调整( 0 – 不可调整 ; 1 – 可以调整 )。 return value : ************************************/ function openwin(url,windowname,width,height,sizeable) { var screenwidth = document.body.offsetwidth-50;//window.screen.width; var screenheight = document.body.offsetheight;//window.screen.height; var newwindowtop = (screenheight-height)/2; var newwindowleft = (screenwidth-width)/2; window.open(url,windowname,"top="+newwindowtop+",left="+newwindowleft+",width="+width+",height="+height+",status=no,toolbar=no,menubar=no,scrollbars=no,location=no,resizable="+sizeable,"false"); } /************************************ method : selectedadd(sourceobj,aimobj) purpose : 多选框选择列表项 parameters : sourceobj – 源列表 aimobj – 选择结果列表 return value : ************************************/ function selectedadd(sourceobj,aimobj) { j=aimobj.length; for (i=0;i1) ) { dateobject.value = sreturnval; } } /************************************ purpose : 设置cookie,以下为cookie相关的操作 ************************************/ function setcookie(name,value,expiry,path,domain,secure){ var namestring = name + "=" + value; var expirystring = (expiry == null) ? "" : " ;expires = "+ expiry.togmtstring(); var pathstring = (path == null) ? "" : " ;path = "+ path; var domainstring = (path == null) ? "" : " ;domain = "+ domain; var securestring = (secure) ?";secure" :""; document.cookie = namestring + expirystring + pathstring + domainstring + securestring; } function getcookie (name) { var cookiefound = false; var start = 0; var end = 0; var cookiestring = document.cookie; var i = 0; while (i <= cookiestring.length) { start = i ; end = start + name.length; if (cookiestring.substring(start, end) == name){ cookiefound = true; break; } i++; } if (cookiefound){ start = end + 1; end = cookiestring.indexof(";",start); if (end < start) end = cookiestring.length; return unescape(cookiestring.substring(start, end)); } return ""; } function deletecookie(name){ var expires = new date(); expires.settime (expires.gettime() - 1); setcookie( name , "delete cookie", expires,null,null,false); } /** * 数据库查询的cookie校验,如果允许查询这写入新的cookie并执行查询,否则提示用户不要频繁查询 */ function checkcookie(interval) { var cookiename = "querytime"; var cookievalue = getcookie(cookiename); var date = new date(); var curtime = date.gettime(); var testtime = (curtime-interval*1000); if(testtime > cookievalue) { // alert("继续查询"); //设置过期时间 date.settime(date.gettime() + 100000); setcookie(cookiename,curtime,date,null,null,false); return true; } else { alert("请不要频繁查询!"); return false; } } /** * 计数器的cookie校验, */ function checkcountercookie(interval) { var cookiename = "indexcounter"; var cookievalue = getcookie(cookiename); var date = new date(); var curtime = date.gettime(); var testtime = (curtime-interval*1000); if(testtime > cookievalue) { //设置过期时间 date.settime(date.gettime() + 100000); setcookie(cookiename,curtime,date,null,null,false); return true; } else { return false; } }