首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

日常JS页面证验封装

2012-11-14 
日常JS页面验证封装/************************************ JSP页面输入有效性校验* author:* create date

日常JS页面验证封装

/************************************ JSP页面输入有效性校验* author:* create date:* update date:* update content: 此文件在原先使用文件checkvalue.jsp基础上,结合原先的使用经验做了如下改进* 1 增加函数CheckSpecChar(FormName),直接校验整个form的所有输入控件是否包含非法字符。* 2 函数CheckInputValue原先传入参数输入框内容,改为输入框对象名称,这样一旦校验不通过,光标可以定位到对象。* 3 优化日期校验,原先对日期格式只校验输入字符,没有校验长度以及yyyy-mm-dd格式中年月日各自是否满足要求。* 4 优化Email格式校验* 5 原先输入框允许为空,同时如果输入内容有最短长度限制时候,无法校验,现已修改,能够支持。** 增加系数Rate类型,不能大于1* 增加时间Time类型,24h:mi格式*********************************///提交表单时清理所有的非隐藏表单元素值的左右空格并校验是否含有非法字符--liuchuangfunction submitclean(FormName){var str = "'<>""; //非法字符集for (var index = 0; index < FormName.elements.length; index++) {if(FormName.elements[index].type != "hidden"){//去除左右空格FormName.elements[index].value = FormName.elements[index].value.replace(/^\s+|\s+$/g,"");for(i = 0; i < FormName.elements[index].value.length; i++){if (str.indexOf(FormName.elements[index].value.substring(i,i + 1)) >= 0){alert("输入的内容不能含有非法字符:" + str);FormName.elements[index].focus();return false;}}}}return true;}//该函数用于带查询条件的显示页面,页面加载时判断哪个form元素应该默认获得焦点--liuchuangfunction formFocus(FormName){var isfocus =false;for (var index = 0; index < FormName.elements.length; index++) {if(FormName.elements[index].className=='lc') continue;if(FormName.elements[index].tagName=='INPUT'|| FormName.elements[index].tagName=='SELECT'|| FormName.elements[index].tagName=='TEXTAREA'){if(FormName.elements[index].type != "hidden" && FormName.elements[index].value!=""){FormName.elements[index].focus();isfocus =true;break;}}}if(!isfocus){for (var index = 0; index < FormName.elements.length; index++) {if(FormName.elements[index].className=='lc') continue;if(FormName.elements[index].tagName=='INPUT'|| FormName.elements[index].tagName=='SELECT'|| FormName.elements[index].tagName=='TEXTAREA'){if(FormName.elements[index].type != "hidden"){FormName.elements[index].focus();break;}}}}}//清除文本框字符串的前后所有空格String.prototype.trim = function() //removes the Left side and the right side blank space{return this.replace(/(^\s*)|(\s*$)/g, "")}//文本框获得焦点后,如果文本框不为空,则将焦点放置在字符串之后function cc() //generater after onfocus(){var e = event.srcElement;var r =e.createTextRange();r.moveStart("character",e.value.length);r.collapse(true);r.select();}//判断Form中所有对象的值中是否有特殊字符function CheckSpecChar(FormName){//传入参数为form的名称bString = "'<>""; //非法字符集for (var ObjID=0; ObjID < FormName.elements.length; ObjID++) {for(i = 0; i < FormName.elements[ObjID].value.length; i ++){if (bString.indexOf(FormName.elements[ObjID].value.substring(i,i+1)) >= 0){alert('输入的内容不能包含非法字符:' + bString);FormName.elements[ObjID].focus();return false;}}}return true;}//校验不合格后,光标自动定位到不符合格式要求的控件中function CheckInputValue(input_desc,//输入框内容的中文名称ObjName ,//输入框对象名称is_empty,//false-不可以为空;true-可以为空input_type,//输入框内容类型input_minlength,//输入框内容的最小长度input_maxlength//输入框内容的最长长度){//不能为空if(!is_empty && CheckIsNull(ObjName.value)){alert(input_desc + "不能为空!");ObjName.value="";//liuchuang补充于20080619:输入空格后,将空格清除!ObjName.focus();return false;}if(is_empty && CheckIsNull(ObjName.value)){return true;}//输入框内容的最小长度限制,并且输入框不为空,(剔除输入框为空的情况)if(input_minlength != 0 && ObjName.value.length < input_minlength && ObjName.value.length > 0){alert(input_desc + "长度不能低于" + input_minlength + "个字符!");ObjName.focus();return false;}if(input_maxlength != 0 && ObjName.value.length > input_maxlength ){alert(input_desc + "长度不能超过" + input_maxlength + "个字符!");ObjName.focus();return false;}/**************** 统一调用函数CheckSpecChar(FormName),整个form一次检查* ***************//*if(input_type == "String"){if(!CheckString(ObjName.value)){alert(input_desc + "不能包含<、>、'、"、/、\");ObjName.focus();return false;}}*/if(input_type == "StringNoError"){if(!CheckStringNoError(ObjName.value)){alert(input_desc + "不能包含<、>、'、"、/、\");ObjName.focus();return false;}}if(input_type == "StringNoSpace"){if(!CheckStringNoSpace(ObjName.value)){alert(input_desc + "不能包含空格!");ObjName.focus();return false;}}if(input_type == "StringNo6up"){if(!CheckStringNo6up(ObjName.value)){alert(input_desc + "不能包含\^!");ObjName.focus();return false;}}if(input_type == "StringNofg"){if(!CheckStringNofg(ObjName.value)){alert(input_desc + "不能包含※!");ObjName.focus();return false;}}if(input_type == "StringNoPercent"){if(!CheckStringNoPercent(ObjName.value)){alert(input_desc + "不能包含%!");ObjName.focus();return false;}}if(input_type == "StringNoSpacePercent"){if(!CheckStringNoSpacePercent(ObjName.value)){alert(input_desc + "不能包含空格和%!");ObjName.focus();return false;}}if(input_type == "Number"){if(!CheckNumber(ObjName.value)){alert(input_desc + "是数字,只能全部由数字组成!");ObjName.focus();return false;}}if(input_type == "Number24"){if(!CheckNumber24(ObjName.value)){alert(input_desc + ",只能在1-24之间!");ObjName.focus();return false;}}if(input_type == "Telephone"){if(!CheckTelephone(ObjName.value)){//alert(input_desc + "是电话号码数字、-组成!");alert(input_desc + "只能由数字、-组成!");ObjName.focus();return false;}}if(input_type == "Money"){if(!CheckMoney(ObjName.value)){alert(input_desc + "是金额,由数字、.组成!");ObjName.focus();return false;}}if(input_type == "Rate"){if(!CheckRate(ObjName.value)){alert(input_desc + "是系数,不能大于1!");ObjName.focus();return false;}}if(input_type == "Time"){if(!CheckTime(ObjName.value)){alert(input_desc + "是时间,格式如下24h:mi!");ObjName.focus();return false;}}if(input_type == "Time2"){if(!CheckTime2(ObjName.value)){alert(input_desc + "是时间,格式如下24h:mi:ss!");ObjName.focus();return false;}}if(input_type == "Date"){if(!CheckDate(ObjName,input_desc)){return false;}}if(input_type == "Month"){if(!CheckMonth(ObjName.value)){alert(input_desc + "是月份,格式如下yyyy-MM!");ObjName.focus();return false;}}if(input_type == "Email"){if(!CheckEmail(ObjName.value)){alert(input_desc + "是Email,必须符合格式要求!");ObjName.focus();return false;}}if(input_type == "Password"){if(!CheckPassword(ObjName.value)){alert(input_desc + "只能包含数字和字母!");ObjName.focus();return false;}}if(input_type == "Letter"){if(!CheckLetter(ObjName.value)){alert(input_desc + "必须是字母!");ObjName.focus();return false;}}if(input_type == "UpLetter"){if(!CheckUpLetter(ObjName.value)){alert(input_desc + "必须是大写字母!");ObjName.focus();return false;}}if(input_type == "LowLetter"){if(!CheckLowLetter(ObjName.value)){alert(input_desc + "必须是小写字母!");ObjName.focus();return false;}}if(input_type == "Chinese"){if(!CheckChinese(ObjName.value)){alert(input_desc + "必须是全部为中文!");ObjName.focus();return false;}}if(input_type == "NoChinese"){if(!CheckNoChinese(ObjName.value)){alert(input_desc + "不能包含中文!");ObjName.focus();return false;}}return true;}//判断控件中字符串是否为空//By ChengWei 2007-12-12function CheckIsNull(str) {if (str.Trim().length == 0) {return true; //空值}return false; //不为空}//判断是否没有包含空格function CheckStringNoSpace(str){var i;for (i = 0; i < str.length; i++){if (str.charAt(i) == " "){return false;}}return true;}//判断是否没有包含"/",""function CheckStringNoError(str){//传入参数为form的名称bString = "'<>"\\/"; //非法字符集for(i = 0; i < str.length; i ++){if (bString.indexOf(str.substring(i,i+1)) >= 0){return false;}}return true;}//判断是否没有包含%function CheckStringNoPercent(str){var i;for (i = 0; i < str.length; i++){if (str.charAt(i) == "%"){return false;}}return true;}//判断是否没有包含\^function CheckStringNo6up(str){var i;for (i = 0; i < str.length; i++){if (str.charAt(i) == "\^"){return false;}}return true;}//判断是否没有包含\*function CheckStringNofg(str){var i;for (i = 0; i < str.length; i++){if (str.charAt(i) == "※"){return false;}}return true;}//判断是否没有空格和%function CheckStringNoSpacePercent(str){var i;for (i = 0; i < str.length; i++){if (str.charAt(i) == " " || str.charAt(i) == "%"){return false;}}return true;}//检验是否为数字(整型)function CheckNumber(str){var i;//alert(parseInt(str));for (i = 0; i < str.length; i++){if (str.charAt(i) < "0" || str.charAt(i) > "9"){return false;}}return true;}//检验24小时范围function CheckNumber24(str){var i;//alert(parseInt(str));for (i = 0; i < str.length; i++){if (str.charAt(i) < "0" || str.charAt(i) > "9"){return false;}}if(parseInt(str)<1||parseInt(str)>24){return false;}return true;}//判断是否符合电话号码,Telephone,由数字和-组成function CheckTelephone(str){var ifor (i = 0; i < str.length; i++){if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != "-"){return false;}}return true;}//检验是否为金额(浮点)function CheckMoney(str){var i;for (i = 0; i < str.length; i++){if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != "."){return false;}}return true;}//检验是否为系数,小于等于1function CheckRate(str){var i;for (i = 0; i < str.length; i++){if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != "."){return false;}}if (parseFloat(str) >1 ){return false;}return true;}//检验是否为时间,格式24h:mifunction CheckTime(str){var i;for (i = 0; i < str.length; i++){if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != ":"){return false;}}if (str.length != 5)return false;if (str.substring(2,3) != ":" ) {return false;}ls_hour = str.substring(0,2);ls_min = str.substring(3,5);if (parseFloat(ls_hour) > 23 ){return false;}if (parseFloat(ls_min) > 59){return false;}return true;}//检验是否为时间,格式24h:mi:ssfunction CheckTime2(str){var i;for (i = 0; i < str.length; i++){if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != ":"){return false;}}if (str.length != 8)return false;if (str.substring(2,3) != ":" ) {return false;}if (str.substring(5,6) != ":" ) {return false;}ls_hour = str.substring(0,2);ls_min = str.substring(3,5);ls_ss = str.substring(6,8);if (parseFloat(ls_hour) > 23 ){return false;}if (parseFloat(ls_min) > 59){return false;}if (parseFloat(ls_ss) > 59){return false;}return true;}//检验是否为月份,格式yyyy-MMfunction CheckMonth(str){var i;for (i = 0; i < str.length; i++){if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != "-"){return false;}}if (str.length != 7)return false;if (str.substring(4,5) != "-" ) {return false;}ls_year = str.substring(0,4);ls_month = str.substring(5,7);if (parseFloat(ls_year) < 1900 ){return false;}if (parseFloat(ls_month) > 12){return false;}return true;}//判断控件中输入是否都为yyyy-mm-dd格式的日期,function CheckDate(ObjName,ObjDesc) {var ln = ObjName.value.length;//空值看作符合格式要求if (ln == 0 ) {return true;}if (ln != 10) {alert( ObjDesc + "只能输入如下日期格式yyyy-mm-dd!");ObjName.focus();return false;}bString = "0123456789-";for(i = 0; i < ObjName.value.length; i ++){if (bString.indexOf(ObjName.value.substring(i,i+1)) == -1) {alert(ObjDesc + "日期格式只能输入数字和-!");ObjName.focus();return false;}}var ls_year, ls_date, ls_month;if (ObjName.value.substring(4,5) != "-" || ObjName.value.substring(7,8) != "-") {alert(ObjDesc + "只能输入如下日期格式yyyy-mm-dd!");ObjName.focus();return false;}ls_year = ObjName.value.substring(0,4);ls_month = ObjName.value.substring(5,7);ls_date = ObjName.value.substring(8,10);if (parseFloat(ls_year) > 2100 || parseFloat(ls_year) < 1900){alert( ObjDesc + "年份不对!");ObjName.focus();return false;}if (parseFloat(ls_month) > 12 || parseFloat(ls_year) < 1){alert(ObjDesc + "月份不对!");return false;}if (parseFloat(ls_date) > 31 || parseFloat(ls_date) < 1){alert(ObjDesc + "日期不对!");ObjName.focus();return false;}return true;}//判断是否符合Password格式,字母和数字组合function CheckPassword(str){var ifor (i = 0; i < str.length; i++){if ((str.charAt(i) < "0" || str.charAt(i) > "9") && (str.charAt(i) < "A" || str.charAt(i) > "Z") && (str.charAt(i) < "a" || str.charAt(i) > "z")){return false;}}return true;}//判断是否都是字母function CheckLetter(str){var ifor (i = 0; i < str.length; i++){if ( (str.charAt(i) < "A" || str.charAt(i) > "Z") && (str.charAt(i) < "a" || str.charAt(i) > "z")){return false;}}return true;}//判断是否都是大写字母function CheckUpLetter(str){var ifor (i = 0; i < str.length; i++){if ( (str.charAt(i) < "A" || str.charAt(i) > "Z") ){return false;}}return true;}//判断是否都是小写字母function CheckLowLetter(str){var ifor (i = 0; i < str.length; i++){if ( (str.charAt(i) < "a" || str.charAt(i) > "z")){return false;}}return true;}//判断是否为全部中文,当然在其他语言的系统中,如果是日文、韩文也可能,function CheckChinese(str){var i ;for (var i=0;i<str.length;i++){if (parseInt(str.charCodeAt(i)) <= 256){return false;}}return true;}//判断是否没有中文function CheckNoChinese(str){var i ;for (var i=0;i<str.length;i++){if (parseInt(str.charCodeAt(i)) > 256){return false;}}return true;}//判断是否符合Email的格式,包含@和. , @在.之前,function CheckEmail(str){var index_i;var index_j;if(str.length > 0){index_i = str.lastIndexOf("@");if(( index_i < 1) ){return false;}index_j = str.indexOf(".", index_i);if(( index_j < 1) ){return false;}}return true;}//去空格函数String.prototype.Trim = function() {return this.replace(/(^\s*)|(\s*$)/g, "");}String.prototype.LTrim = function() {return this.replace(/(^\s*)/g, "");}String.prototype.RTrim = function() {return this.replace(/(\s*$)/g, "");}//****************************************************************// Description: str 为输入字符串,// iType为类型,分别为0 - 去除前后空格; 1 - 去前导空格; 2 - 去尾部空格//****************************************************************function cTrim(str,iType){var sTmpStr = ' ';var i = -1;if(iType == 0 || iType == 1){while(sTmpStr == ' '){++i;sTmpStr = str.substr(i,1);}str = str.substring(i);}if(iType == 0 || iType == 2){sTmpStr = ' ';i = str.length;while(sTmpStr == ' '){--i;sTmpStr = str.substr(i,1);}str = str.substring(0,i+1);}return str;}function isblank(s){var j=0;for(var i = 0;i < s.length;i++) {var c = s.charAt(i);if ((c != '') && (c != '\n') && (c != '\t') && (c != ' ')) return false;if (c == ' '){j++;}}if (j == s.length) //全部是空格{return true;}else{return false;}}function isvalid(s){var j=0;for(var i = 0;i < s.length;i++) {var c = s.charAt(i);if ((c == '<') || (c == '>') || (c == '\\') || (c == '/') || (c == '+') || (c == '\'')) return false;}return true;}function isNum(s){for(var i = 0;i < s.length;i++) {var v = parseFloat(s.charAt(i));if (isNaN(v)) return false;}return true;}//拼音,数字,|组成function CheckInputStringExt1(inputDesc,obj,isEmpty,minLength,maxLength){var value = obj.value.Trim();var str = /^[a-zA-Z\d|]*?$/;if(!isEmpty && value.length > 0){alert(inputDesc + "不能为空!");obj.focus();return false;}if(!str.exec(value)){alert(inputDesc + "只能包含数字,字母和"|"!");obj.focus();return false;}if(value.length > maxLength){alert(inputDesc + "长度不能超过" + maxLength + "个字符!");obj.focus();return false;}return true;}
?

热点排行