打开模式对话框
返回模式对话框的值
全屏幕打开 IE 窗口
脚本中中使用xml
一、验证类
1、数字验证内
2、时间类
3、表单类
4、字符类
5、浏览器类
6、结合类
二、功能类
1、时间与相关控件类
2、表单类
3、打印类
4、事件类
5、网页设计类
6、树型结构。
7、无边框效果的制作
8、连动下拉框技术
9、文本排序
10,画图类,含饼、柱、矢量贝滋曲线
11,操纵客户端注册表类
12,DIV层相关(拖拽、显示、隐藏、移动、增加)
13,TABLAE相关(客户端动态增加行列,模拟进度条,滚动列表等)
14,各种object classid=>相关类,如播放器,flash与脚本互动等
16, 刷新/模拟无刷新 异步调用类(XMLHttp或iframe,frame)
针对javascript的几个对象的扩充函数
function checkBrowser() { this.ver=navigator.appVersion this.dom=document.getElementById?1:0 this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0; this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; this.ie4=(document.all && !this.dom)?1:0; this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; this.ns4=(document.layers && !this.dom)?1:0; this.mac=(this.ver.indexOf('Mac') > -1) ?1:0; this.ope=(navigator.userAgent.indexOf('Opera')>-1); this.ie=(this.ie6 || this.ie5 || this.ie4) this.ns=(this.ns4 || this.ns5) this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope) this.nbw=(!this.bw) return this; } /* ****************************************** 日期函数扩充 ****************************************** */ /* =========================================== //转换成大写日期(中文) =========================================== */ Date.prototype.toCase = function() { var digits= new Array('零','一','二','三','四','五','六','七','八','九','十','十一','十二'); var unit= new Array('年','月','日','点','分','秒'); var year= this.getYear() + ""; var index; var output=""; ////////得到年 for (index=0;index<year.length;index++ ) { output += digits[parseInt(year.substr(index,1))]; } output +=unit[0]; ///////得到月 output +=digits[this.getMonth()] + unit[1]; ///////得到日 switch (parseInt(this.getDate() / 10)) { case 0: output +=digits[this.getDate() % 10]; break; case 1: output +=digits[10] + ((this.getDate() % 10)>0?digits[(this.getDate() % 10)]:""); break; case 2: case 3: output +=digits[parseInt(this.getDate() / 10)] + digits[10] + ((this.getDate() % 10)>0?digits[(this.getDate() % 10)]:""); default: break; } output +=unit[2]; ///////得到时 switch (parseInt(this.getHours() / 10)) { case 0: output +=digits[this.getHours() % 10]; break; case 1: output +=digits[10] + ((this.getHours() % 10)>0?digits[(this.getHours() % 10)]:""); break; case 2: output +=digits[parseInt(this.getHours() / 10)] + digits[10] + ((this.getHours() % 10)>0?digits[(this.getHours() % 10)]:""); break; } output +=unit[3]; if(this.getMinutes()==0&&this.getSeconds()==0) { output +="整"; return output; } ///////得到分 switch (parseInt(this.getMinutes() / 10)) { case 0: output +=digits[this.getMinutes() % 10]; break; case 1: output +=digits[10] + ((this.getMinutes() % 10)>0?digits[(this.getMinutes() % 10)]:""); break; case 2: case 3: case 4: case 5: output +=digits[parseInt(this.getMinutes() / 10)] + digits[10] + ((this.getMinutes() % 10)>0?digits[(this.getMinutes() % 10)]:""); break; } output +=unit[4]; if(this.getSeconds()==0) { output +="整"; return output; } ///////得到秒 switch (parseInt(this.getSeconds() / 10)) { case 0: output +=digits[this.getSeconds() % 10]; break; case 1: output +=digits[10] + ((this.getSeconds() % 10)>0?digits[(this.getSeconds() % 10)]:""); break; case 2: case 3: case 4: case 5: output +=digits[parseInt(this.getSeconds() / 10)] + digits[10] + ((this.getSeconds() % 10)>0?digits[(this.getSeconds() % 10)]:""); break; } output +=unit[5]; return output; } /* =========================================== //转换成农历 =========================================== */ Date.prototype.toChinese = function() { //暂缺 } /* =========================================== //是否是闰年 =========================================== */ Date.prototype.isLeapYear = function() { return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0))); } /* =========================================== //获得该月的天数 =========================================== */ Date.prototype.getDayCountInMonth = function() { var mon = new Array(12); mon[0] = 31; mon[1] = 28; mon[2] = 31; mon[3] = 30; mon[4] = 31; mon[5] = 30; mon[6] = 31; mon[7] = 31; mon[8] = 30; mon[9] = 31; mon[10] = 30; mon[11] = 31; if(0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0))&&this.getMonth()==2) { return 29; } else { return mon[this.getMonth()]; } } /* =========================================== //日期比较 =========================================== */ Date.prototype.Compare = function(objDate) { if(typeof(objDate)!="object" && objDate.constructor != Date) { return -2; } var d = this.getTime() - objDate.getTime(); if(d>0) { return 1; } else if(d==0) { return 0; } else { return -1; } } /* =========================================== //格式化日期格式 =========================================== */ Date.prototype.Format = function(formatStr) { var str = formatStr; str=str.replace(/yyyy|YYYY/,this.getFullYear()); str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():"0" + (this.getYear() % 100)); str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():"0" + this.getMonth()); str=str.replace(/M/g,this.getMonth()); str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():"0" + this.getDate()); str=str.replace(/d|D/g,this.getDate()); str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():"0" + this.getHours()); str=str.replace(/h|H/g,this.getHours()); str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():"0" + this.getMinutes()); str=str.replace(/m/g,this.getMinutes()); str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():"0" + this.getSeconds()); str=str.replace(/s|S/g,this.getSeconds()); return str; } /* =========================================== //由字符串直接实例日期对象 =========================================== */ Date.prototype.instanceFromString = function(str) { return new Date("2004-10-10".replace(/-/g, "\/")); } /* =========================================== //得到日期年月日等加数字后的日期 =========================================== */ Date.prototype.dateAdd = function(interval,number) { var date = this; switch(interval) { case "y" : date.setFullYear(date.getFullYear()+number); return date; case "q" : date.setMonth(date.getMonth()+number*3); return date; case "m" : date.setMonth(date.getMonth()+number); return date; case "w" : date.setDate(date.getDate()+number*7); return date; case "d" : date.setDate(date.getDate()+number); return date; case "h" : date.setHours(date.getHours()+number); return date; case "m" : date.setMinutes(date.getMinutes()+number); return date; case "s" : date.setSeconds(date.getSeconds()+number); return date; default : date.setDate(d.getDate()+number); return date; } } /* =========================================== //计算两日期相差的日期年月日等 =========================================== */ Date.prototype.dateDiff = function(interval,objDate) { //暂缺 } /* ****************************************** 数字函数扩充 ****************************************** */ /* =========================================== //转换成中文大写数字 =========================================== */ Number.prototype.toChinese = function() { var num = this; if(!/^\d*(\.\d*)?$/.test(num)){alert("Number is wrong!"); return "Number is wrong!";} var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"); var BB = new Array("","拾","佰","仟","萬","億","点",""); var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = ""; for(var i=a[0].length-1; i>=0; i--) { switch(k) { case 0 : re = BB[7] + re; break; case 4 : if(!new RegExp("0{4}\\d{"+ (a[0].length-i-1) +"}$").test(a[0])) re = BB[4] + re; break; case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break; } if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re; if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++; } if(a.length>1) //加上小数部分(如果有小数部分) { re += BB[6]; for(var i=0; i<a[1].length; i++) re += AA[a[1].charAt(i)]; } return re; } /* =========================================== //保留小数点位数 =========================================== */ Number.prototype.toFixed=function(len) { if(isNaN(len)||len==null) { len = 0; } else { if(len<0) { len = 0; } } return Math.round(this * Math.pow(10,len)) / Math.pow(10,len); } /* =========================================== //转换成大写金额 =========================================== */ Number.prototype.toMoney = function() { // Constants: var MAXIMUM_NUMBER = 99999999999.99; // Predefine the radix characters and currency symbols for output: var CN_ZERO= "零"; var CN_ONE= "壹"; var CN_TWO= "贰"; var CN_THREE= "叁"; var CN_FOUR= "肆"; var CN_FIVE= "伍"; var CN_SIX= "陆"; var CN_SEVEN= "柒"; var CN_EIGHT= "捌"; var CN_NINE= "玖"; var CN_TEN= "拾"; var CN_HUNDRED= "佰"; var CN_THOUSAND = "仟"; var CN_TEN_THOUSAND= "万"; var CN_HUNDRED_MILLION= "亿"; var CN_SYMBOL= ""; var CN_DOLLAR= "元"; var CN_TEN_CENT = "角"; var CN_CENT= "分"; var CN_INTEGER= "整"; // Variables: var integral; // Represent integral part of digit number. var decimal; // Represent decimal part of digit number. var outputCharacters; // The output result. var parts; var digits, radices, bigRadices, decimals; var zeroCount; var i, p, d; var quotient, modulus; if (this > MAXIMUM_NUMBER) { return ""; } // Process the coversion from currency digits to characters: // Separate integral and decimal parts before processing coversion: parts = (this + "").split("."); if (parts.length > 1) { integral = parts[0]; decimal = parts[1]; // Cut down redundant decimal digits that are after the second. decimal = decimal.substr(0, 2); } else { integral = parts[0]; decimal = ""; } // Prepare the characters corresponding to the digits: digits= new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE); radices= new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND); bigRadices= new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION); decimals= new Array(CN_TEN_CENT, CN_CENT); // Start processing: outputCharacters = ""; // Process integral part if it is larger than 0: if (Number(integral) > 0) { zeroCount = 0; for (i = 0; i < integral.length; i++) { p = integral.length - i - 1; d = integral.substr(i, 1); quotient = p / 4; modulus = p % 4; if (d == "0") { zeroCount++; } else { if (zeroCount > 0) { outputCharacters += digits[0]; } zeroCount = 0; outputCharacters += digits[Number(d)] + radices[modulus]; } if (modulus == 0 && zeroCount < 4) { outputCharacters += bigRadices[quotient]; } } outputCharacters += CN_DOLLAR; } // Process decimal part if there is: if (decimal != "") { for (i = 0; i < decimal.length; i++) { d = decimal.substr(i, 1); if (d != "0") { outputCharacters += digits[Number(d)] + decimals[i]; } } } // Confirm and return the final output string: if (outputCharacters == "") { outputCharacters = CN_ZERO + CN_DOLLAR; } if (decimal == "") { outputCharacters += CN_INTEGER; } outputCharacters = CN_SYMBOL + outputCharacters; return outputCharacters; } Number.prototype.toImage = function() { var num = Array( "#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x5,0x5,0x5,0xF}", "#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0x4,0x4,0x4,0x4,0x4}", "#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x4,0xF,0x1,0xF}", "#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x4,0xF,0x4,0xF}", "#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0x5,0x5,0xF,0x4,0x4}", "#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x1,0xF,0x4,0xF}", "#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x1,0xF,0x5,0xF}", "#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x4,0x4,0x4,0x4}", "#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x5,0xF,0x5,0xF}", "#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x5,0xF,0x4,0xF}" ); var str = this + ""; var iIndex var result="" for(iIndex=0;iIndex<str.length;iIndex++) { result +="<img src='javascript:" & num(iIndex) & "'"> } return result; } /* ****************************************** 其他函数扩充 ****************************************** */ /* =========================================== //验证类函数 =========================================== */ function IsEmpty(obj) { obj=document.getElementsByName(obj).item(0); if(Trim(obj.value)=="") { if(obj.disabled==false && obj.readOnly==false) { obj.focus(); } return true; } else { return false; } } /* =========================================== //无模式提示对话框 =========================================== */ function modelessAlert(Msg) { window.showModelessDialog("javascript:alert(\""+escape(Msg)+"\");window.close();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;"); } /* =========================================== //页面里回车到下一控件的焦点 =========================================== */ function Enter2Tab() { var e = document.activeElement; if(e.tagName == "INPUT" && ( e.type == "text" || e.type == "password" || e.type == "checkbox" || e.type == "radio" ) || e.tagName == "SELECT") { if(window.event.keyCode == 13) { window.event.keyCode = 9; } } } ////////打开此功能请取消下行注释 //document.onkeydown = Enter2Tab; function ViewSource(url) { window.location = 'view-source:'+ url; } ///////禁止右键 document.oncontextmenu = function() { return false;} /* ****************************************** 字符串函数扩充 ****************************************** */ /* =========================================== //去除左边的空格 =========================================== */ String.prototype.LTrim = function() { return this.replace(/(^\s*)/g, ""); } String.prototype.Mid = function(start,len) { if(isNaN(start)&&start<0) { return ""; } if(isNaN(len)&&len<0) { return ""; } return this.substring(start,len); } /* =========================================== //去除右边的空格 =========================================== */ String.prototype.Rtrim = function() { return this.replace(/(\s*$)/g, ""); } /* =========================================== //去除前后空格 =========================================== */ String.prototype.Trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } /* =========================================== //得到左边的字符串 =========================================== */ String.prototype.Left = function(len) { if(isNaN(len)||len==null) { len = this.length; } else { if(parseInt(len)<0||parseInt(len)>this.length) { len = this.length; } } return this.substring(0,len); } /* =========================================== //得到右边的字符串 =========================================== */ String.prototype.Right = function(len) { if(isNaN(len)||len==null) { len = this.length; } else { if(parseInt(len)<0||parseInt(len)>this.length) { len = this.length; } } return this.substring(this.length-len,this.length); } /* =========================================== //得到中间的字符串,注意从0开始 =========================================== */ String.prototype.Mid = function(start,len) { if(isNaN(start)||start==null) { start = 0; } else { if(parseInt(start)<0) { start = 0; } } if(isNaN(len)||len==null) { len = this.length; } else { if(parseInt(len)<0) { len = this.length; } } return this.substring(start,start+len); } /* =========================================== //在字符串里查找另一字符串:位置从0开始 =========================================== */ String.prototype.InStr = function(str) { if(str==null) { str = ""; } return this.indexOf(str); } /* =========================================== //在字符串里反向查找另一字符串:位置0开始 =========================================== */ String.prototype.InStrRev = function(str) { if(str==null) { str = ""; } return this.lastIndexOf(str); } /* =========================================== //计算字符串打印长度 =========================================== */ String.prototype.LengthW = function() { return this.replace(/[^\x00-\xff]/g,"**").length; } /* =========================================== //是否是正确的IP地址 =========================================== */ String.prototype.isIP = function() { var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/; if (reSpaceCheck.test(this)) { this.match(reSpaceCheck); if (RegExp.$1 <= 255 && RegExp.$1 >= 0 && RegExp.$2 <= 255 && RegExp.$2 >= 0 && RegExp.$3 <= 255 && RegExp.$3 >= 0 && RegExp.$4 <= 255 && RegExp.$4 >= 0) { return true; } else { return false; } } else { return false; } } /* =========================================== //是否是正确的长日期 =========================================== */ String.prototype.isDate = function() { var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/); if(r==null) { return false; } var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]); } /* =========================================== //是否是手机 =========================================== */ String.prototype.isMobile = function() { return /^0{0,1}13[0-9]{9}$/.test(this); } /* =========================================== //是否是邮件 =========================================== */ String.prototype.isEmail = function() { return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(this); } /* =========================================== //是否是邮编(中国) =========================================== */ String.prototype.isZipCode = function() { return /^[\\d]{6}$/.test(this); } /* =========================================== //是否是有汉字 =========================================== */ String.prototype.existChinese = function() { //[\u4E00-\u9FA5]為漢字﹐[\uFE30-\uFFA0]為全角符號 return /^[\x00-\xff]*$/.test(this); } /* =========================================== //是否是合法的文件名/目录名 =========================================== */ String.prototype.isFileName = function() { return !/[\\\/\*\?\|:"<>]/g.test(this); } /* =========================================== //是否是有效链接 =========================================== */ String.Prototype.isUrl = function() { return /^http:\/\/([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$/.test(this); } /* =========================================== //是否是有效的身份证(中国) =========================================== */ String.prototype.isIDCard = function() { var iSum=0; var info=""; var sId = this; 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:"国外"}; if(!/^\d{17}(\d|x)$/i.test(sId)) { return false; } sId=sId.replace(/x$/i,"a"); //非法地区 if(aCity[parseInt(sId.substr(0,2))]==null) { return false; } var sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2)); var d=new Date(sBirthday.replace(/-/g,"/")) //非法生日 if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate())) { return false; } for(var i = 17;i>=0;i--) { iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11); } if(iSum%11!=1) { return false; } return true; } /* =========================================== //是否是有效的电话号码(中国) =========================================== */ String.prototype.isPhoneCall = function() { return /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/.test(this); } /* =========================================== //是否是数字 =========================================== */ String.prototype.isNumeric = function(flag) { //验证是否是数字 if(isNaN(this)) { return false; } switch(flag) { case null://数字 case "": return true; case "+"://正数 return/(^\+?|^\d?)\d*\.?\d+$/.test(this); case "-"://负数 return/^-\d*\.?\d+$/.test(this); case "i"://整数 return/(^-?|^\+?|\d)\d+$/.test(this); case "+i"://正整数 return/(^\d+$)|(^\+?\d+$)/.test(this); case "-i"://负整数 return/^[-]\d+$/.test(this); case "f"://浮点数 return/(^-?|^\+?|^\d?)\d*\.\d+$/.test(this); case "+f"://正浮点数 return/(^\+?|^\d?)\d*\.\d+$/.test(this); case "-f"://负浮点数 return/^[-]\d*\.\d$/.test(this); default://缺省 return true; } } /* =========================================== //转换成全角 =========================================== */ String.prototype.toCase = function() { var tmp = ""; for(var i=0;i<this.length;i++) { if(this.charCodeAt(i)>0&&this.charCodeAt(i)<255) { tmp += String.fromCharCode(this.charCodeAt(i)+65248); } else { tmp += String.fromCharCode(this.charCodeAt(i)); } } return tmp } /* =========================================== //对字符串进行Html编码 =========================================== */ String.prototype.toHtmlEncode = function { var str = this; str=str.replace("&","&"); str=str.replace("<","<"); str=str.replace(">",">"); str=str.replace("'","'"); str=str.replace("\"","""); return str; }
qqdao(青青岛)
精心整理的输入判断js函数
关键词:字符串判断,字符串处理,字串判断,字串处理
//'********************************************************* // ' Purpose: 判断输入是否为整数字 // ' Inputs: String // ' Returns: True, False //'********************************************************* function onlynumber(str) { var i,strlength,tempchar; str=CStr(str); if(str=="") return false; strlength=str.length; for(i=0;i<strlength;i++) { tempchar=str.substring(i,i+1); if(!(tempchar==0||tempchar==1||tempchar==2||tempchar==3||tempchar==4||tempchar==5||tempchar==6||tempchar==7||tempchar==8||tempchar==9)) { alert("只能输入数字 "); return false; } } return true; } //'********************************************************* //'********************************************************* // ' Purpose: 判断输入是否为数值(包括小数点) // ' Inputs: String // ' Returns: True, False //'********************************************************* function IsFloat(str) { var tmp; var temp; var i; tmp =str; if(str=="") return false; for(i=0;i<tmp.length;i++) {temp=tmp.substring(i,i+1); if((temp>='0'&& temp<='9')||(temp=='.')){} //check input in 0-9 and '.' else { return false;} } return true; } //'********************************************************* // ' Purpose: 判断输入是否为电话号码 // ' Inputs: String // ' Returns: True, False //'********************************************************* function isphonenumber(str) { var i,strlengh,tempchar; str=CStr(str); if(str=="") return false; strlength=str.length; for(i=0;i<strlength;i++) { tempchar=str.substring(i,i+1); if(!(tempchar==0||tempchar==1||tempchar==2||tempchar==3||tempchar==4||tempchar==5||tempchar==6||tempchar==7||tempchar==8||tempchar==9||tempchar=='-')) { alert("电话号码只能输入数字和中划线 "); return(false); } } return(true); } //'********************************************************* //'********************************************************* // ' Purpose: 判断输入是否为Email // ' Inputs: String // ' Returns: True, False //'********************************************************* function isemail(str) { var bflag=true if (str.indexOf("'")!=-1) { bflag=false } if (str.indexOf("@")==-1) { bflag=false } else if(str.charAt(0)=="@"){ bflag=false } return bflag } //'********************************************************* // ' Purpose: 判断输入是否含有为中文 // ' Inputs: String // ' Returns: True, False //'********************************************************* function IsChinese(str) { if(escape(str).indexOf("%u")!=-1) { return true; } return false; } //'********************************************************* //'********************************************************* // ' Purpose: 判断输入是否含有空格 // ' Inputs: String // ' Returns: True, False //'********************************************************* function checkblank(str) { var strlength; var k; var ch; strlength=str.length; for(k=0;k<=strlength;k++) { ch=str.substring(k,k+1); if(ch==" ") { alert("对不起 不能输入空格 "); return false; } } return true; } //'********************************************************* //'********************************************************* // ' Purpose: 去掉Str两边空格 // ' Inputs: Str // ' Returns: 去掉两边空格的Str //'********************************************************* function trim(str) { var i,strlength,t,chartemp,returnstr; str=CStr(str); strlength=str.length; t=str; for(i=0;i<strlength;i++) { chartemp=str.substring(i,i+1); if(chartemp==" ") { t=str.substring(i+1,strlength); } else { break; } } returnstr=t; strlength=t.length; for(i=strlength;i>=0;i--) { chartemp=t.substring(i,i-1); if(chartemp==" ") { returnstr=t.substring(i-1,0); } else { break; } } return (returnstr); } //'********************************************************* //'********************************************************* // ' Purpose: 将数值类型转化为String // ' Inputs: int // ' Returns: String //'********************************************************* function CStr(inp) { return(""+inp+""); } //'********************************************************* //'********************************************************* // ' Purpose: 去除不合法字符, ' " < > // ' Inputs: String // ' Returns: String //'********************************************************* function Rep(str) {var str1; str1=str; str1=replace(str1,"'","`",1,0); str1=replace(str1,'"',"`",1,0); str1=replace(str1,"<","(",1,0); str1=replace(str1,">",")",1,0); return str1; } //'********************************************************* //'********************************************************* // ' Purpose: 替代字符 // ' Inputs: 目标String,欲替代的字符,替代成为字符串,大小写是否敏感,是否整字代替 // ' Returns: String //'********************************************************* function replace(target,oldTerm,newTerm,caseSens,wordOnly) { var wk ; var ind = 0; var next = 0; wk=CStr(target); if (!caseSens) { oldTerm = oldTerm.toLowerCase(); wk = target.toLowerCase(); } while ((ind = wk.indexOf(oldTerm,next)) >= 0) { if (wordOnly) { var before = ind - 1; var after = ind + oldTerm.length; if (!(space(wk.charAt(before)) && space(wk.charAt(after)))) { next = ind + oldTerm.length; continue; } } target = target.substring(0,ind) + newTerm + target.substring(ind+oldTerm.length,target.length); wk = wk.substring(0,ind) + newTerm + wk.substring(ind+oldTerm.length,wk.length); next = ind + newTerm.length; if (next >= wk.length) { break; } } return target; } //'********************************************************* 几个判断,并强制设置焦点: //+------------------------------------ // trim 去除字符串两端的空格 String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"")} //------------------------------------- // avoidDeadLock 避免设置焦点死循环问题 // 起死原因:以文本框为例,当一个文本框的输入不符合条件时,这时,鼠标点击另一个文本框,触发第一个文本框的离开事件 // ,产生设置焦点动作。现在产生了第二个文本框的离开事件,因此也要设置第二个文本框的焦点,造成死锁。 // 解决方案:设置一个全局对象[key],记录当前触发事件的对象,若其符合条件,则释放该key;若其仍不符合,则key还是指 // 向该对象,别的对象触发不到设置焦点的语句。 ///////////////////////////////////////// // 文本框控制函数 // ///////////////////////////////////////// var g_Obj = null;// 记住旧的控件 // hintFlag参数:0表示没有被别的函数调用,因此出现提示;1表示被调用,不出现警告信息 // focusFlag参数:指示是否要设置其焦点,分情况:0表示有的可为空;1表示有的不为空 // 避免死锁的公共部分 //+------------------------------------ function textCom(obj, hintFlag) { if (g_Obj == null) g_Obj=event.srcElement; else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj)) { g_Obj = null; return; } g_Obj.value = g_Obj.value.trim(); } //------------------------------------- // 文本框不为空 //+------------------------------------ function TBNotNull(obj, hintFlag) { if (g_Obj == null) g_Obj=event.srcElement; else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj)) { g_Obj = null; return; } g_Obj.value = g_Obj.value.trim(); if (g_Obj.value == "") { if (hintFlag == 0) { g_Obj.focus(); alert("内容不能为空!"); } return false; } else g_Obj = null; return true; } //------------------------------------- // 输入内容为数字 //+------------------------------------ function LetNumber(obj, hintFlag, focusFlag) { if (g_Obj == null) g_Obj=event.srcElement; else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj)) { g_Obj = null; return; } g_Obj.value = g_Obj.value.trim(); if ((g_Obj.value == "") || isNaN(g_Obj.value)) { if (hintFlag == 0) { g_Obj.value = ""; if (focusFlag == 1) g_Obj.focus(); else g_Obj = null; alert("输入的内容必须为数字!"); } return false; } else g_Obj = null; return true; } //------------------------------------- // 输入内容为整数 //+------------------------------------ function LetInteger(obj, hintFlag, focusFlag) { if (g_Obj == null) g_Obj=event.srcElement; else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj)) { g_Obj = null; return; } g_Obj.value = g_Obj.value.trim(); if (!/^\d*$/.test(g_Obj.value) || (g_Obj.value == "")) { if (hintFlag == 0) { g_Obj.value = ""; if (focusFlag == 1) g_Obj.focus(); else g_Obj = null; alert("输入的内容必须为整数!"); } return false; } else g_Obj = null; return true; } //------------------------------------- // 输入内容为字母 //+------------------------------------ function LetLetter(obj, hintFlag, focusFlag) { if (g_Obj == null) g_Obj=event.srcElement; else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj)) { g_Obj = null; return; } if (!/^[A-Za-z]*$/.test(g_Obj.value)) { if (hintFlag == 0) { alert("输入的内容必须为字母!"); g_Obj.value = ""; if (focusFlag == 1) g_Obj.focus(); else g_Obj = null; } return false; } else { g_Obj = null; } return true; } //------------------------------------- // 内容大于某值 //+------------------------------------ function LetMoreThan(obj, leftNumber, hintFlag, focusFlag) { var ifAlert;// 是否出现警告 if (g_Obj == null) g_Obj=event.srcElement; else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj)) { g_Obj = null; return; } g_Obj.value = g_Obj.value.trim(); if (g_Obj.value == "") ifAlert = 0; else ifAlert = 1; if ((g_Obj.value == "") || (isNaN(g_Obj.value)) || (g_Obj.value < leftNumber)) { if (hintFlag == 0) { g_Obj.value = ""; if (focusFlag == 1) g_Obj.focus(); else g_Obj = null; // 更友好的提示 if (ifAlert == 1) { if (leftNumber == 0) alert("内容必须为非负数!"); else alert("输入的内容必须" + leftNumber + "以上!"); } } return false; } else g_Obj = null; return true; } //------------------------------------- // 内容大于某值,整数 //+------------------------------------ function LetMoreThan_Int(obj, leftNumber, hintFlag, focusFlag) { var ifAlert;// 是否出现警告 if (g_Obj == null) g_Obj=event.srcElement; else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj)) { g_Obj = null; return; } g_Obj.value = g_Obj.value.trim(); if (g_Obj.value == "") ifAlert = 0; else ifAlert = 1; if ((g_Obj.value == "") || (isNaN(g_Obj.value) || g_Obj.value < leftNumber) || !/^\d*$/.test(g_Obj.value)) { if (hintFlag == 0) { g_Obj.value = ""; if (focusFlag == 1) g_Obj.focus(); else {g_Obj = null;} if (ifAlert == 1)// 当用户不输入的时候,不出现提示 { // 更友好的提示 if (leftNumber == 0) alert("内容必须为非负整数!"); else alert("且必须在" + leftNumber + "以上!"); } } return false; } else g_Obj = null; return true; } //------------------------------------- // 内容小于某值 //+------------------------------------ function LetLessThan(obj, rightNumber, hintFlag, focusFlag) { if (g_Obj == null) g_Obj=event.srcElement; else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj)) { g_Obj = null; return; } g_Obj.value = g_Obj.value.trim(); if ((g_Obj.value == "") || (isNaN(g_Obj.value) || g_Obj.value > rightNumber)) { if (hintFlag == 0) { g_Obj.value = ""; if (focusFlag == 1) g_Obj.focus(); else g_Obj = null; alert("输入的内容必须在" + rightNumber + "以下!"); } return false; } else {g_Obj = null;} return true; } //------------------------------------- // 内容介于两值中间 //+------------------------------------ function LetMid(obj, leftNumber, rightNumber, hintFlag, focusFlag) { var ifAlert;// 是否出现警告 if (g_Obj == null) g_Obj=event.srcElement; else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj)) { g_Obj = null; return; } g_Obj.value = g_Obj.value.trim(); if (g_Obj.value == "") ifAlert = 0; else ifAlert = 1; // 首先应该为数字 if (LetNumber(g_Obj, 1)) { if (!(LetMoreThan(obj,leftNumber,1,0) && LetLessThan(obj,rightNumber,1,0))) { if (hintFlag == 0) { g_Obj.value = ""; if (focusFlag == 1) g_Obj.focus(); else g_Obj = null; if (ifAlert == 1)// 当用户不输入的时候,不出现提示 alert("输入的内容必须介于" + leftNumber + "和" + rightNumber + "之间!"); } return false; } else {g_Obj = null;} } else { if (hintFlag == 0) { g_Obj.value = ""; if (focusFlag == 1) g_Obj.focus(); else g_Obj = null; if (ifAlert == 1) alert("输入的内容必须为数字!\n" + "且介于" + leftNumber + "和" + rightNumber + "之间!"); } return false; } return true; } //------------------------------------- ///////////////////////////////////////// // 下拉框 ///////////////////////////////////////// // 下拉框,务必选择 //+------------------------------------ function onSelLostFocus(obj) { if (g_Obj == null) { g_Obj=event.srcElement; } else if ((g_Obj!=null) && (g_Obj!=obj)) { g_Obj = null; return; } if (g_Obj.selectedIndex == 0) { g_Obj.focus(); } else { g_Obj = null; } }