js验证框架实现代码分享_javascript技巧
程序员文章站
2022-04-24 08:44:02
...
本文实例为大家分享了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;i=0 && thisInput.id.indexOf("_TF")>0 ) &&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.id.indexOf("_TF")>0 ) ){ if(frm.validate != null) { setVenusInputDefault(frm); writeValidateInfoAfterObject("", frm); } } } } return true; } function setVenusInputDefault(_frm) { _frm.style.borderStyle=""; _frm.style.borderColor=""; if( _frm.value != null ){ _frm.style.backgroundColor = ""; _frm.style.color = ""; } } function replaceEnter(_str) { /**替换换行回车字符**/ var str = _str; str = str.replace('\n','') str = str.replace('\r','') //alert(str.indexOf('\n')) if(str.indexOf('\n')!=-1 &&str.indexOf('\r')!=-1) { return replaceEnter(str); } else { return str; } } function replaceSingleQuote(_str) { /**替换换行回车字符**/ var str = _str; str = str.replace('\\','\\u005C'); str = str.replace('\'','\\u0027'); str = str.replace('(','\\u0028'); str = str.replace(')','\\u0029'); str = str.replace('\"','\\u0022'); str = str.replace(';','\\u0038'); //str = Jtrim(str); return str; } function isContains(_validateStr,_validator) { for (var i=0;i<_validatestr.length if _validator return true false function writevalidateinfo thisobj var inputname="getInputNameFromObject(thisObj);" info="inputName">= 0) { writeValidateInfoAfterObject(info, thisObj); } if(ConfigValidateInfoType.indexOf("writeAlert") >= 0) { writeValidateInfoAlert(info, thisObj); } if(!rmTempStatusIsFocus) { setVenusInputError(thisObj); rmTempStatusIsFocus = true; } } function setVenusInputError(_frm) { try { //_frm.click(); // click会导致文件上传错误 _frm.focus(); //由于SELCET不支持内容选择,且不用内容选择,所以特殊处理,防止报错 //修改:李岳 2009-11-12 if(_frm.tagName!="SELECT"){ _frm.select(); } _frm.style.borderStyle="dashed"; _frm.style.borderColor="rgb(255,50,0)"; if( _frm.value != null && _frm.value.length > 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 100) { writeValidateInfo("email地址长度不能超过100位!",thisInput); return false; } var regu = /^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$/; if (regu.exec(s)) { return true; } else { writeValidateInfo ("请输入有效合法的E-mail地址 !",thisInput); return false; } } function isIP() { //是IP var patrn=/^[0-9.]{1,20}$/; if (!patrn.exec(s)){ writeValidateInfo('请输入IP值!',thisInput); return false } return true; } /********************************************************************** *Venus Web JavaScript Code:HTC 校验notNull ***********************************************************************/ function notNullWithoutTrim(s,thisInput) { //是"" //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){ } s=s.trim(); if ( s.length == 0){ writeValidateInfo('请输入,该项不能为空!',thisInput); return false; } return true; } function isInteger(str,thisInput) { //是整数 //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){ } str=str.trim(); if(str.length ==0){ return true; } var reg = "0123456789"; for (var i=0;i " || s.substring(0,1) == " "){ writeValidateInfo("焦点处不能以或空格开头",thisInput); return false; } if (!HoldCode(s)){ writeValidateInfo("焦点处不能输入全角\"·\"/\"—\"/\"——\"字符",thisInput); return false; } if (s.trim().length > 0){ if (s.indexOf("\"") > -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 =10000); return ret; } /********************************************************************** *Venus Web JavaScript Code:HTC 表单通用检验(完善中) ***********************************************************************/ function HoldCode(str){ for(var i=0;i " || current_form[i].value.substring(0,1) == " "){ alert("焦点处不能以或空格开头"); current_form[i].focus(); current_form[i].select(); return false; } if (getStrLength(current_form[i].value) > current_form[i].maxLength){ alert("焦点处输入长度超长\n请确保输入长度在" +current_form[i].maxLength+"以内"); current_form[i].focus(); current_form[i].select(); return false; } if (!HoldCode(current_form[i].value)){ alert("焦点处不能输入全角\"·\"/\"—\"/\"——\"字符"); current_form[i].focus(); current_form[i].select(); return false; } if (!is_empty(current_form[i].value)){ if (current_form[i].name == "scriptDefine"){ return true; } if (current_form[i].value.indexOf("\"") > -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(".") /?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;'\,.?]{0,5000}$/; var patrn2 = /[^\{\|\.\\,"'_}/]/; if (!patrn.exec(s) || !patrn2.exec(s)){ writeValidateInfo('输入项中含非法字符,请重新输入!',thisInput); return false; } return true ; } //=============================================================================================== /** * 验证数字(正整数或者包含小数的数字). */ function isNumeric(value, thisInput) { //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){ } value=value.trim(); if(value.length ==0){ return true; } var reg = /^\d+(\.\d+)?$/; if (!reg.test(value)) { writeValidateInfo ("请输入正整数或者小数!", thisInput); return false; } return true; } /** * 验证数字(正整数). */ function checkInt(value, thisInput) { //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){ } value=value.trim(); if(value.length ==0){ return true; } var reg = /^[0-9]\d*$/; if (!reg.test(value)) { writeValidateInfo ("请输入正整数!", thisInput); return false; } return true; } /** * 验证数字(整数位最大为10位,可以带小数) */ function validateNumericAndLength(value, thisInput) { //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){ } value=value.trim(); if(value.length ==0){ return true; } var reg = /^\d{1,10}(\.\d+)?$/; if (!reg.test(value)) { writeValidateInfo ("请输入正整数或者小数(整数位只能有10位)!", thisInput); return false; } return true; } /** * 验证数字(18,2) */ function isNum18p2(value, thisInput) { //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){} value=value.trim(); if(value.length ==0){ return true; } var reg = /^(-)?\d{1,16}(\.\d{1,2})?$/; if (!reg.test(value)) { writeValidateInfo ("请输入数字(整数位最多16位,小数位最多2位)!", thisInput); return false; } return true; } /** * 验证数字(18,4) */ function isNum18p4(value, thisInput) { //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){} value=value.trim(); if(value.length ==0){ return true; } var reg = /^(-)?\d{1,14}(\.\d{1,4})?$/; if (!reg.test(value)) { writeValidateInfo ("请输入数字(整数位最多14位,小数位最多4位)!", thisInput); return false; } return true; } /** * 验证数字(5,2) */ function isNum5p2(value, thisInput) { //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){} value=value.trim(); if(value.length ==0){ return true; } var reg = /^(-)?\d{1,3}(\.\d{1,2})?$/; if (!reg.test(value)) { writeValidateInfo ("请输入数字(整数位最多3位,小数位最多2位)!", thisInput); return false; } return true; } /** * 验证Email. */ function checkEmail(value, thisInput) { //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){ } value=value.trim(); if(value.length ==0){ return true; } var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; if (!reg.test(value)) { writeValidateInfo ("请输入正确的Email地址!", thisInput); return false; } return true; } /** * 验证身份证(15位或者18位身份证). */ function checkIdCard(value, thisInput) { //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){ } value=value.trim(); if(value.length ==0){ return true; } var reg = /^\d{15}(\d{2}[A-Za-z0-9])?$/; if (!reg.test(value)) { writeValidateInfo ("请输入正确的身份证号码!", thisInput); return false; } return true; } /** * 验证邮政编码. */ function checkPostCode(value, thisInput) { //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){ } value=value.trim(); if(value.length ==0){ return true; } var reg = /^[0-9]\d{5}$/; if (!reg.test(value)) { writeValidateInfo ("请输入正确的邮政编码!", thisInput); return false; } return true; } /** * 验证是否为中文字符. */ function checkChinese(value, thisInput) { //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){ } value=value.trim(); if(value.length ==0){ return true; } var reg = /^[\u0391-\uFFE5]+$/; if (!reg.test(value)) { writeValidateInfo ("请输入中文字符!", thisInput); return false; } return true; } /** * 验证是否为非法字符. */ function checkInvalidString(value, thisInput) { var reg = /^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,./?]*$/; if (!reg.exec(value)) { writeValidateInfo ("输入的字符中包含特殊字符,请重新输入!", thisInput); return false; } return true; } function checkMoney(s, inputName) { //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){ } s=s.trim(); if(s.length ==0){ return true; } if(s==""){ writeValidateInfo("金额不能为空!", inputName); return false; } if(isFloatNumber(s,inputName)==false){ writeValidateInfo("非法金额值!", inputName); return false; } var maxLength = 10; var scale =2; return checkNumberImpl(s, maxLength, scale,inputName); } /** * 校验分数是否在0-100 */ function isAdultAge(str,thisInput) { //是整数 //去掉空格 try{ thisInput.value=thisInput.value.trim(); }catch(e){ } str=str.trim(); if(str.length ==0){ return true; } if(parseInt(str)100){ writeValidateInfo('请输入合法分数(0--100之间)!',thisInput); return false; } return true; } /** * 6 级强度设置(数字、大写字母、小写字母、特殊字符、长度>=6、长度>=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 endYear){ if(flag==1){ alert("起始月份不能大于终止月份"); return false; }else{ alert("招标起始年度不能大于终止年度"); return false; } } return true; }
以上就是本文的全部内容,希望对大家的学习有所帮助。
推荐阅读
-
教你用AngularJS框架一行JS代码实现控件验证效果
-
从盛大通行证上摘下来的身份证验证js代码_javascript技巧
-
javascript suggest效果 自动完成实现代码分享_javascript技巧
-
Js实现双击鼠标自动滚动屏幕的示例代码_javascript技巧
-
JS无限树状列表实现代码_javascript技巧
-
JS 实现Table相同行的单元格自动合并示例代码_javascript技巧
-
js控制滚动条缓慢滚动到顶部实现代码_javascript技巧
-
js 可拖动列表实现代码_javascript技巧
-
用js实现键盘方向键翻页功能的代码_javascript技巧
-
JS 实现Table相同行的单元格自动合并示例代码_javascript技巧