js验证框架实现代码分享_javascript技巧
本文实例为大家分享了js验证框架,很实用,供大家参考,具体内容如下
1、关键方法和原理:
function check(thisinput) 方法中的 if (!eval(scriptcode)) { return false; }
2、调用示例:
复制代码 代码如下:
3、验证时会自动调用:isnumeric 方法 和 notnull方法并返回验证的结果信息。
4、验证框架源码如下
var configvalidateinfotype = writealert; //支持writealert和writepage,writepage;writealert var rmtempstatusisalert = false; var rmtempstatusisfocus = false; var beginvalidate = true; var set_all_venus_inputs_default = true; string.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ); } function checkallforms(){ var checkresult = true; rmtempstatusisalert = false; rmtempstatusisfocus = false; setallvenusinputsdefault(); for (var i=0;i0 ) &&thisinput.clientwidth!=0&&thisinput.style&&thisinput.style.display!='none'){ /* if(validatestr != null && validatestr.length > 0 ){ if(thisinput.tagname == 'textarea' && srcstr != '') { srcstr = replaceenter(srcstr); if( thisinput.maxlength != null && thisinput.maxlength > 0 ){ if (getstrlength(srcstr) > thisinput.maxlength){ writevalidateinfo(thisinput, 焦点处输入长度超长\n请确保输入长度在 +frm.maxlength+以内); return false; } } } } */ if(thisinput.id&&thisinput.id.indexof(supplier_id_ref_)!=-1&&document.getelementbyid(uniondiv)&&document.getelementbyid(uniondiv).style.display==none){ continue; } var rtvalue = check(thisinput); if(checkresult && rtvalue == false) { checkresult = false; break; } } } } return checkresult;} function check(thisinput) { var validatestr = thisinput.validate; if(validatestr == null) { return true; } var inputvalue = thisinput.value; if ( beginvalidate ) { var validatetemp = new array(); validatetemp = validatestr.split(';'); for (var i=0;i 0 ){ _frm.style.backgroundcolor = highlight; _frm.style.color = white; } } catch(e) { alert(e.message); }} function writevalidateinfoalert(info, thisobj) { if(!rmtempstatusisalert) { alert(info); rmtempstatusisalert = true; }} function writevalidateinfoafterobject(info, thisobj) { //写校验信息 var validateinfoobj = null; thisobj = getvalidateposition(thisobj); if(thisobj.nextsibling != null && thisobj.nextsibling.nextsibling != null && thisobj.nextsibling.tagname != null && thisobj.nextsibling.tagname.touppercase() == font && thisobj.nextsibling.nextsibling.tagname.touppercase() == span && thisobj.nextsibling.nextsibling.classname == font_remain_prompt) { validateinfoobj = thisobj.nextsibling.nextsibling; } else { thisobj.insertadjacenthtml(afterend, ); validateinfoobj = thisobj.nextsibling.nextsibling; } if(validateinfoobj.innerhtml.length > 0 || info.length > 0) { validateinfoobj.innerhtml = info; }} function getvalidateposition(thisobj) { if(thisobj.nextsibling != null && thisobj.nextsibling.classname == refbuttonclass) { thisobj = getvalidateposition(thisobj.nextsibling); } else if(thisobj.nextsibling != null && thisobj.nextsibling.type == hidden){ thisobj = getvalidateposition(thisobj.nextsibling); } return thisobj;} function getinputnamefromobject(thisinput) { var inputname = thisinput.inputname ; if ( inputname == null || inputname.length == 0 ){ inputname = thisinput.name; if ( inputname == null || inputname.length == 0 ){ inputname = ; } } return inputname;} function getstrlength(str){ var len = 0; for(var i=0;i 255) len += 2; else len ++; } return len;} /***********************************************************************ranmin validate***********************************************************************/function notnull(s, thisinput) { //不能为空 //去掉空格 try{ thisinput.value=thisinput.value.trim(); }catch(e){ } s=s.trim(); if (s.length == 0){ writevalidateinfo(不能为空或空格!, thisinput); return false; } var s = jtrim(s); if ( s.length == 0){ writevalidateinfo(不能为空或空格!, thisinput); return false; } return true;} function isjine(s, thisinput) { //不能为空 var a=/^[0-9]*(\.[0-9]{1,2})?$/; if(!a.test(s)){ writevalidateinfo(有非法字符或者小数点位数超过两位, thisinput); return false; }else{ return true; }} function ismobile(s, thisinput) { //是手机号码:必须以数字开头,除数字外,可含有“-” //去掉空格 try{ thisinput.value=thisinput.value.trim(); }catch(e){ } s=s.trim(); if(s.length ==0){ return true; } var obj=new array() obj[0]=13; obj[1]=14; obj[2]=15; obj[3]=18; if(s != null ){ if(s.length != 11){ writevalidateinfo('请输入合法的手机号码!', thisinput); return false; } var mob = 0; for ( var int = 0; int < obj.length; int++) { if(s.substring(0,2) == obj[int]){ mob = mob+1; } } if(mob == 0){ writevalidateinfo('请输入合法的手机号码!', thisinput); return false; } } var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) { writevalidateinfo('请输入合法的手机号码!', thisinput); return false; } return true;} function ispostalcode(s, thisinput) { //是邮政编码 //去掉空格 try{ thisinput.value=thisinput.value.trim(); }catch(e){ } s=s.trim(); if(s.length ==0){ return true; } var patrn=/^[a-za-z0-9 ]{3,12}$/; if (!patrn.exec(s)) { writevalidateinfo('请输入合法的邮政编码!', thisinput); return false; } return true;} function istel(s,thisinput) { //是电话普通电话、传真号码:可以“+”开头,除数字外,可含有“-” //去掉空格 try{ thisinput.value=thisinput.value.trim(); }catch(e){ } s=s.trim(); if(s.length ==0){ return true; } var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) { writevalidateinfo('请输入合法的电话号码!',thisinput); return false } return true;} function istelforfax(s,thisinput) { //是电话普通电话、传真号码:可以“+”开头,除数字外,可含有“-” //去掉空格 try{ thisinput.value=thisinput.value.trim(); }catch(e){ } s=s.trim(); if(s.length ==0){ return true; } var patrn=/^(\d){3,4}[-](\d){7,8}$/; if (!patrn.exec(s)) { writevalidateinfo('请输入合法的座机号码,例如:010-88888888!',thisinput); return false } return true;} function isfax(s,thisinput) { //是电话普通电话、传真号码:可以“+”开头,除数字外,可含有“-” //去掉空格 try{ thisinput.value=thisinput.value.trim(); }catch(e){ } s=s.trim(); if(s.length ==0){ return true; } var patrn=/^(\d){3,4}[-](\d){7,8}$/; if (!patrn.exec(s)) { writevalidateinfo('请输入合法的传真号码,例如:010-88888888!',thisinput); return false } return true;} function ischinese(s,thisinput) { //是中文 //去掉空格 try{ thisinput.value=thisinput.value.trim(); }catch(e){ } s=s.trim(); if(s.length ==0){ return true; } var ret = ischinese(s); if(!ret){ writevalidateinfo(请输入中文, thisinput); return ret; } return ret;} function notchinese(s,thisinput) { //不含中文 //去掉空格 try{ thisinput.value=thisinput.value.trim(); }catch(e){ } s=s.trim(); if(s.length ==0){ return true; } var ret = ischinese(s); if(ret){ writevalidateinfo(不能输入中文,thisinput); return false; } return true;} function isnum(s,thisinput) { //是数字 //去掉空格 try{ thisinput.value=thisinput.value.trim(); }catch(e){ } s=s.trim(); if(s.length ==0){ return true; } var digits = 0123456789; var i = 0; var slength = s.length; while ((i < slength)) { var c = s.charat(i); if (digits.indexof(c) == -1){ writevalidateinfo (请输入数字!,thisinput); return false; } i++; } return true;} function isnumbigtozero(s,thisinput) { //是数字 //去掉空格 try{ thisinput.value=thisinput.value.trim(); }catch(e){ } s=s.trim(); if(s.length ==0){ return true; } var digits = 0123456789; var i = 0; var slength = s.length; while ((i -1){ writevalidateinfo(焦点处不能输入双引号!!,thisinput); return false; } if (s.indexof(\') > -1){ writevalidateinfo(焦点处不能输入单引号,thisinput); return false; } if (s.indexof(\\) > -1){ writevalidateinfo(焦点处不能输入 '\\' ,thisinput); return false; } } return true;} //基本函数列表function jtrim(str) { //去空隔函数 var i = 0; var len = str.length; if ( str == ) return( str ); var j = len -1; var flagbegin = true; var flagend = true; while ( flagbegin == true && i=0) { if (str.charat(j)== ) { j=j-1; flagend=true; } else { flagend=false; } } if ( i > j ) return (); var trimstr = str.substring(i,j+1); return trimstr;} function isnumber(s) { //数字判断函数 s=s.trim(); if(s.length ==0){ return true; } var digits = 0123456789; var i = 0; var slength = s.length; while ((i < slength)) { var c = s.charat(i); if (digits.indexof(c) == -1) { return false; } i++; } return true;} function ischinese(s) { //判断是否中文函数 var ret=true; for(var i=0;i=10000); return ret;} /***********************************************************************venus web javascript code:htc 表单通用检验(完善中)***********************************************************************/function holdcode(str){ for(var i=0;i -1){ alert(焦点处不能输入双引号); current_form[i].focus(); current_form[i].select(); return false; } } } } return true;} function checknumber(s, inputname) { try{ //去掉空格 try{ thisinput.value=thisinput.value.trim(); }catch(e){ } s=s.trim(); if(s.length ==0){ return true; } var thisobj = event.srcelement; var maxlength = thisobj.integerdigits; var scale = thisobj.decimaldigits; return checknumberimpl(s, maxlength, scale); }catch(e){ }} function checknumberimpl(s, maxlength, scale) { //校验运行里程,小数,整数部分最多为10-2 if(s == ) { return true; } if(scale == undefined) { scale = 0; } if(maxlength == undefined) { maxlength = 38; } if(!isfloatnumber(s)) { return false; } if(s.indexof(.) >0) { if(s.indexof(.) <= maxlength && (math.round(s*(pow(10,scale)))<(pow(10,(maxlength + scale))))) { return true; } else { alert(整数部分最大为 + (maxlength - scale) + 位!); return false; } } else { if(s.length =10) * 如果密码为空,返回 0 */function pwdstrength(pwd) { var sum = [0, 0, 0]; for (var i=0; i=48 && c =65 && c =97 && c = 8) level++; return level;}function isbiggerzero(value, thisinput) { //已经是数字,然后必须大于0 if(thisinput.value<=0){ writevalidateinfo('请输入一个大于零的数字!',thisinput); return false; } return true;} function isnonnegative(value, thisinput) { if(thisinput.value endyear){ if(flag==1){ alert(起始月份不能大于终止月份); return false; }else{ alert(招标起始年度不能大于终止年度); return false; } } return true;}
以上就是本文的全部内容,希望对大家的学习有所帮助。
其它类似信息