/* * 表单内容格式检测 * @param name 控件的名称或变量名 * @param obj 控件或变量 * @param isChanger 如果传入的为控件,isChanger为true ,则允许剔除控件的值的前后包含的空格等 * @param message 提示消息 * @chktype  为类型,参照函数内释 * @return true 控件的值不为空,false 控件的值为空 */ function check(name, obj, isChanger, message, chktype){ var flag = false; switch(chktype){ case 1://判断是否为空 flag = IsBlank(name, obj, isChanger, message); break; case 2://判断是否为数字 flag = isNumber(name, obj, message); break; case 3://判断是否为用户名格式 flag = IsUserName(name, obj, message); break; case 4://判断是否为汉字 flag = IsChineseCharacters(name, obj, message); break; case 5://判断是否为邮箱格式 flag = IsEmail(name, obj, message); break; case 6://判断是否为合法日期格式 flag = IsLegalityDate(name, obj, message); break; case 7://是否包含非法字符 flag = ValidateObjectCharacter(name, obj, isChanger); break; } return flag; } /** * 根据控件,判断控件的值或变量是否为空,如果前后包含空格可以剔除 * @param name 控件的名称或变量名 * @param obj 控件或变量 * @param isChanger 如果传入的为控件,isChanger为true ,则允许剔除控件的值的前后包含的空格 * @param message 提示消息 * @return true 控件的值不为空,false 控件的值为空 */ function IsBlank(name, obj, isChanger, message){ var objVal; var isObj = false; var objType = typeof(obj); /** 判断是否为控件*/ if (objType == "object") { objVal = obj.value; isObj = true; } else if (objType == "string" || objType == "number"){ objVal = obj; isObj = false; } else { alert("传入的参数类型错误!"); return false; } /** 剔除objVal中的前后空格*/ objVal = objVal.replace(/(^\s*)|(\s*$)/g, ""); if (isObj && isChanger) { obj.value = objVal; } if (objVal == "") { if (message == "" && name != "") { alert(name + "为空,请输入必要的信息!"); } else if (message != "") { alert(message); } if (isObj && isChanger) { obj.value = objVal; } if (isObj){ obj.select(); obj.focus(); } return false; } return true; } /** * 判断是否为用户名格式 * @param name 控件的名称或变量名 * @param obj 控件或变量 * @param message 提示消息 * @return true 控件或变量的值合法 */ function IsUserName(name, obj, message) { var objVal; var isObj = false; var objType = typeof(obj); /** 判断是否为控件*/ if (objType == "object") { objVal = obj.value; isObj = true; } else if (objType == "string" || objType == "number"){ objVal = obj; isObj = false; } else { alert("传入的参数类型错误!"); return false; } //判断是否为用户名格式 var reg = /^[^\d\-_][\w\-]*[^\-_]$/; if(!reg.test(objVal)){ if (message == "" && name != "") { alert(name + "格式不对,请确认输入正确!"); } else if (message != "") { alert(message); } if (isObj){ obj.select(); obj.focus(); } return false; } return true; } /** * 根据控件,判断控件的值或变量是否为数字(1, 1.1 都是合法的) * @param name 控件的名称或变量名 * @param obj 控件或变量 * @param message 提示消息 * @return true 控件的值为数字,false 控件的值为数字 */ function isNumber(name, obj, message) { var objVal; var isObj = false; var objType = typeof(obj); /** 判断是否为控件*/ if (objType == "object") { objVal = obj.value; isObj = true; } else if (objType == "string" || objType == "number"){ objVal = obj; isObj = false; } else { alert("传入的参数类型错误!"); return false; } var reg = /^\d+(\.\d+)?$/; if(!reg.test(objVal)){ if (message == "" && name != "") { alert(name + "不是数字,请确认输入正确!"); } else if (message != "") { alert(message); } if (isObj){ obj.select(); obj.focus(); } return false; } return true; } /** * 根据控件,判断控件的值或变量是否包含非汉字 * @param name 控件的名称或变量名 * @param obj 控件或变量 * @param message 提示消息 * @return true 控件的值或变量全为汉字,false 控件的值或变量包含非汉字 */ function IsChineseCharacters(name, obj, message){ var objVal; var isObj = false; var objType = typeof(obj); /** 判断是否为控件*/ if (objType == "object") { objVal = obj.value; isObj = true; } else if (objType == "string"){ objVal = obj; isObj = false; } else { alert("传入的参数类型错误!"); return false; } var reg = /^[\u4E00-\u9FA5]*$/; if(!reg.test(objVal)){ if (message == "" && name != "") { alert(name + "输入的不全是汉字,请确认输入正确!"); } else if (message != "") { alert(message); } if (isObj){ obj.select(); obj.focus(); } return false; } return true; } /** * 根据控件,判断控件的值或变量是否为合法的邮箱 * @param name 控件的名称或变量名 * @param obj 控件或变量 * @param message 提示消息 * @return true 控件的值或变量为合法的邮箱,false 控件的值或变量为不合法的邮箱 */ function IsEmail(name, obj, message){ var objVal; var isObj = false; var objType = typeof(obj); /** 判断是否为控件*/ if (objType == "object") { objVal = obj.value; isObj = true; } else if (objType == "string"){ objVal = obj; isObj = false; } else { alert("传入的参数类型错误!"); return false; } var reg = /^[^\d\-_][\w\-]*[^\-_]@[^\-][a-zA-Z\d\-]*[^\-](\.[^\-][a-zA-Z\d\-]*[^\-])*\.[a-zA-Z]{3}(\.[a-zA-Z]{2})?$/; if(!reg.test(objVal)){ if (message == "" && name != "") { alert(name + "格式不对,请输入正确的邮箱。!"); } else if (message != "") { alert(message); } if (isObj){ obj.select(); obj.focus(); } return false; } return true; } /** * 根据控件,判断控件的值或变量是否为合法的日期格式(1990-12-31) * @param name 控件的名称或变量名 * @param obj 控件或变量 * @param message 提示消息 * @return true 控件的值或变量为合法的日期格式,false 控件的值或变量为合法的日期格式 */ function IsLegalityDate(name, obj, message){ var objVal; var isObj = false; var objType = typeof(obj); /** 判断是否为控件*/ if (objType == "object") { objVal = obj.value; isObj = true; } else if (objType == "string"){ objVal = obj; isObj = false; } else { alert("传入的参数类型错误!"); return false; } var reg = /^(19|20)\d\d\-(0|1)\d\-(0|1|2|3)\d$/; if(!reg.test(objVal)){ if (message == "" && name != "") { alert(name + "格式不对,请输入正确的日期。!"); } else if (message != "") { alert(message); } if (isObj){ obj.select(); obj.focus(); } return false; } //检查是否合法 if (!isDate(objVal)) { if (isObj){ obj.select(); obj.focus(); } return false; } return true; } /** * 根据控件,判断控件的值或变量是否包含非法字符,如果包含则剔除 * @param name 控件的名称或变量名 * @param obj 控件或变量 * @param isChanger 如果传入的为控件,isChanger为true ,则允许剔除控件的值中非法字符 * @return true 不包含非法字符,false包含非法字符 */ function ValidateObjectCharacter(name, obj, isChanger){ var invalidStr = new Array("*","-","&","!","^","(",")","+","|","{","}","[","]","\"","\'","?","<",",",".",";","'",":"); var tempInt = 0; var objVal; var isObj = false; var objType = typeof(obj); if (objType == "object") { objVal = obj.value; isObj = true; } else { objVal = obj; isObj = false; } for (var i=0; i if (firstPointLoc != lastPointLoc) check = false; for (var i=0; i= 0 && temp <= 9) || (temp == '.') || (temp=='-' && i==0))) check = false; } autoMaxValue = 1; if (intLen >= 0) { for (var i=0; i maxValue) { thisMax = maxValue; } else { thisMax = autoMaxValue; } } if (minValue == "min") { if (intLen < 0) { thisMin = MIN; } else { thisMin = -autoMaxValue; } } else { if (-autoMaxValue < minValue) { thisMin = minValue; } else { thisMin = -autoMaxValue; } } if ((1*textObjectVal) > (1*thisMax)) check = false; if ((1*textObjectVal) < (1*thisMin)) check = false; } if (check && decLen >= 0) { var temp = 1; for (var i=0; i if (!check) { var tempstring =""; if (thisMax != MAX) { tempstring = tempstring + "并且最大值小于等于" + thisMax; } if (thisMin != MIN) { tempstring = tempstring + "并且最小值大于等于" + thisMin; } alert("你输入的数字超范围,请按以下格式输入(整数部分为:" + intLen + "位,小数部分为:" + decLen + "位" + tempstring + ")"); textObjectVal = "0"; } return check; } /** * 提供长度校验, 长度的上下限为[0, 5]格式 * @param name 控件或变量名 * @param obj 控件或变量 * @param lenStart 长度的下限 * @param lenEnd 长度的上限 * @return true 符合规格, false 不符合规格 */ function checkLen(name, obj, lenStart, lenEnd) { var objVal; var isObj = false; var objType = typeof(obj); /** 判断是否为控件*/ if (objType == "object") { objVal = obj.value; isObj = true; } else if (objType == "string"){ objVal = obj; isObj = false; } else { alert("传入的参数类型错误!"); return false; } var minLen; var maxLen; if (lenStart < 0) { minLen = 0; } if (lenEnd < 0) { maxLen = 0; } if (objVal.length < minLen || objVal.length > maxLen) { return false; } return true; } /** * 根据一个操作控件,名为checkAll进行全选或反选名为opcheck的被操作控件 * @param checkAll 操作控件 * @param opcheck 被操作控件 */ function selectAllCheckBox(checkAll, opcheck){ var e = checkAll; var flag = e.checked; if (opcheck.length){ for (var i=0; i < opcheck.length; i++) { opcheck[i].checked=flag; } } else { if (opcheck) { opcheck.checked=flag; } } } /** * 提供对控件检查是否有obj控件被选中 * @param name 控件名 * @param obj 控件 * @param message 提示 * @return true 有空件被选中, false 没有控件被选中 */ function checkSelected(name, obj, message) { var flag = 0; for(var i=0;i< obj.length; i++){ var e=obj[i]; if (e.name == 'opcheck' && e.checked == true) { flag++; } } if (flag == 0) { if (name != "" && message == "") { alert("请确认你选择了" + name + "!"); } else if (message != "") { alert(message); } return false; } return true; } /** * 弹出日历 * @param obj 回传选择时间的控件 * @param RQUrl 日历的页面 */ function chooseRQ(obj, rqUrl) { var ret = window.showModalDialog(RQUrl,"选择时间","scroll=no;status:no;dialogWidth:320px;dialogHeight:225px"); if (ret!=null) { obj.value=ret; event.returnValue=false; } } /** * 判断时间是否正确 * @param checktext 时间字符串 * @return true 正确, false 错误 */ function isDate(checktext){ var datetime; var year,month,day; var gone,gtwo; var validStr = "您输入的日期无效,请重新输入!" + "\r\n\r\n注意,输入格式为 yyyy-mm-dd, 例如:2000-01-01。"; if (checktext != "") { datetime = checktext; if (datetime.length == 10) { year = datetime.substring(0,4); if (isNaN(year) == true) { alert(validStr); return false; } gone = datetime.substring(4,5); month = datetime.substring(5,7); if (isNaN(month) == true) { alert(validStr); return false; } gtwo=datetime.substring(7,8); day=datetime.substring(8,10); if (isNaN(day) == true) { alert(validStr); return false; } if ((gone=="-") && (gtwo=="-")) { if (month < 1 || month > 12) { alert("月份必须在01和12之间!"); return false; } if (day < 1 || day > 31) { alert("日期必须在01和31之间!"); return false; } else { if (month == 2) { if (isLeapYear(year) && day > 29) { alert("二月份日期必须在01到29之间!"); return false; } if (!isLeapYear(year) && day > 28) { alert("二月份日期必须在01到28之间!"); return false; } } if ((month==4 || month==6 || month==9 || month==11) && (day > 30)) { alert("在四,六,九,十一月份 \n日期必须在01到30之间!"); return false; } } } else { alert(validStr); return false; } } else { alert(validStr); return false; } } else { return false; } return true; } /* *判断列表是否有选中的 */ function isSelectNodes(obj, message){ selected=false; for (j = 0; j < obj.length; j ++) { if (obj.options[j].selected == true) { selected=true; break; } } if(!selected){ alert(message); return false; } } //判断是否为数字 function isNumber() //OK. { if (event.srcElement.tagName == "INPUT") { if (event.srcElement.value.indexOf(".") == -1) { if ((event.keyCode >= 48 && event.keyCode <= 57)) return true; else { if ( event.keyCode == 46 ) return true; return false; } } else { if(event.keyCode >=48 && event.keyCode <=57) return true; else { return false; } } } }