//################################################################### //关于验证输入有效性 //################################################################### function checkfckisnull(key,name) { try{ var oeditor=fckeditorapi.getinstance(key); var content=oeditor.getxhtml(true); content=content.replace(/ /g,""); content=content.replace(/\s/g,""); content=content.replace(/ /g,""); content=content.replace(//g,""); content=content.replace(/

<\/p>/g,""); content=content.replace(/

<\/div>/g,""); if(content==null||content==""){ alert(name+"不能为空!"); return false; } return true; } catch(e){ alert(name+ "输入出错!"); return false; } } var el=function(id) { var col=document.getelementbyid(id); if(col!=null) return col; else { var num=document.getelementsbytagname("input"); for(i=0;i=0) { return num[i]; } } num=document.getelementsbytagname("textarea"); for(i=0;i=0) { return num[i]; } } } } string.prototype.trim = function(){ return this.replace(/^\s*|\s*$/,''); } function checkipaddr(txt,name) { var str=el(txt).value; if(str == "") { alert(name+"不能为空!"); return false; } re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配ip地址的正则表达式 if(re.test(str)) { if(regexp.$1*math.pow(255,3)+regexp.$2*math.pow(255,2)+regexp.$3*255+regexp.$4*1) { return true; } else { alert(name+"格式不正确!"); return false; } } else { alert(name+"格式不正确!"); return false; } } function islength(txt,name,len) { var str=el(txt).value; if(str.length>len) { alert(name+"输入字数不能大于"+len+"字!"); return false; } else { return true; } } function islengthshort(txt,name,len) { var str=el(txt).value; if(str.length date.parse(edate.replace("-", "/"))) { alert(startname+"要小于或等于"+endname); return false; } else { return true; } } //js比较日期大小 function isstartendtime(start,startname,end,endname) { var sdate=el(start).value; var edate=el(end).value; if (parsefloat(sdate.replace(":", ".")) >= parsefloat(edate.replace(":", "."))) { alert(startname+"要小于"+endname); return false; } else { return true; } } //校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-” function istel(txt,name) { var str=el(txt).value; var pattern =/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/; if(str!="" && (!pattern.exec(str))) { alert(name+"请输入正确的电话号码!"); return false; } else { return true; } } function isusername(txt,name) { var str=el(txt).value; var pattern =/^([\ue7c7-\ue7f3]|[\w])*$/; if(str!="" && (!pattern.exec(str))) { alert(name+"请输入英文和数字!"); return false; } else { return true; } } //邮件 function isemail(txt,name) { var str=el(txt).value; var pattern =/^[a-za-z0-9_\-]{1,}@[a-za-z0-9_\-]{1,}\.[a-za-z0-9_\-.]{1,}$/; if(str!="" && (!pattern.exec(str))) { alert(name+"请输入正确的邮箱地址!"); return false; } else { return true; } } //校验手机号码:必须以数字开头,除数字外,可含有“-” function ismobile(txt,name) { if(el(txt)==null) return true; var str=el(txt).value; var reg0 = /^13\d{9}$/; var reg1 = /^15\d{9}$/; var reg2 = /^18\d{9}$/; var reg3 = /^1\d{10}$/; var my = false; if (reg0.test(str))my=true; if (reg1.test(str))my=true; if (reg2.test(str))my=true; if (reg3.test(str))my=true; if(str!="" && (!my)) { alert(name); return false; } else { return true; } } //邮政编码 function ispostalcode(txt,name) { var str=el(txt).value; var pattern =/^[0-9]{6}$/; if(str!="" && (!pattern.exec(str))) { alert(name+"请输入正确的邮政编码!"); return false; } else { return true; } } //校验日期 function isdate(txt,name) { var str=el(txt).value; var pattern =/^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$/; if(str!="" && (!pattern.exec(str))) { alert(name+"请输入正确的日期 “yyyy-mm-dd”!"); return false; } else { if(str!="" ) { var year = str.substring(0,4); if(year> "2100" || year< "1900") { alert(name+"请输入正确的年份!"); return false; } } return true; } } //校验时间 function istime(txt,name) { var str=el(txt).value; var pattern =/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/; if(str!="" && (!pattern.exec(str))) { alert(name+"请输入正确的时间格式“09:00”!"); return false; } else { return true; } } //验证网址 function isurl(txt,name) { var str=el(txt).value; var strregex = "^(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@ + "(([0-9]{1,3}\.){3}[0-9]{1,3}" // ip形式的url- 199.194.52.184 + "|" // 允许ip和domain(域名) + "([0-9a-z_!~*'()-]+\.)*" // 域名- www. +"([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名 + "[a-z]{2,6})" // first level domain- .com or .museum + "(:[0-9]{1,4})?" // 端口- :80 + "((/?)|" // a slash isn't required if there is no file name + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; var re=new regexp(strregex); if(str=="") { return true; } else { if (str!="" && re.test(str)) { return true; } else { alert(name+"请输入正确的网址 !") return false; } } } //校验身份证号 function isidnumber(txt,name) { var str=el(txt).value; if(str!="") { return isidcardno(str); } else { return true; } } //这个可以验证15位和18位的身份证,并且包含生日和校验位的验证。 //如果有兴趣,还可以加上身份证所在地的验证,就是前6位有些数字合法有些数字不合法。 function isidcardno(num) { num = num.touppercase(); //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符x。 if (!(/(^\d{15}$)|(^\d{17}([0-9]|x)$)/.test(num))) { alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或x。'); return false; } //校验位按照iso 7064:1983.mod 11-2的规定生成,x可以认为是数字10。 //下面分别分析出生日期和校验位 var len, re; len = num.length; if (len == 15) { re = new regexp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); var arrsplit = num.match(re); //检查生日日期是否正确 var dtmbirth = new date('19' + arrsplit[2] + '/' + arrsplit[3] + '/' + arrsplit[4]); var bgoodday; bgoodday = (dtmbirth.getyear() == number(arrsplit[2])) && ((dtmbirth.getmonth() + 1) == number(arrsplit[3])) && (dtmbirth.getdate() == number(arrsplit[4])); if (!bgoodday) { alert('输入的身份证号里出生日期不对!'); return false; } else { //将15位身份证转成18位 //校验位按照iso 7064:1983.mod 11-2的规定生成,x可以认为是数字10。 var arrint = new array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrch = new array('1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2'); var ntemp = 0, i; num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); for(i = 0; i < 17; i ++) { ntemp += num.substr(i, 1) * arrint[i]; } num += arrch[ntemp % 11]; //return num; return true; } } if (len == 18) { re = new regexp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|x)$/); var arrsplit = num.match(re); //检查生日日期是否正确 var dtmbirth = new date(arrsplit[2] + "/" + arrsplit[3] + "/" + arrsplit[4]); var bgoodday; bgoodday = (dtmbirth.getfullyear() == number(arrsplit[2])) && ((dtmbirth.getmonth() + 1) == number(arrsplit[3])) && (dtmbirth.getdate() == number(arrsplit[4])); if (!bgoodday) { alert(dtmbirth.getyear()); alert(arrsplit[2]); alert('输入的身份证号里出生日期不对!'); return false; } else { //检验18位身份证的校验码是否正确。 //校验位按照iso 7064:1983.mod 11-2的规定生成,x可以认为是数字10。 var valnum; var arrint = new array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrch = new array('1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2'); var ntemp = 0, i; for(i = 0; i < 17; i ++) { ntemp += num.substr(i, 1) * arrint[i]; } valnum = arrch[ntemp % 11]; if (valnum != num.substr(17, 1)) { alert('18位身份证的校验码不正确!应该为:' + valnum); return false; } //return num; return true; } } return false; }