//******************************************************************* //作者: 丁伯洋 //日期: 2006-4-27 //概要: 这里主要放的是一些检查合法性的函数 // 以_开头的函数请不要调用, //******************************************************************* // *********************************************************************************************** // // function getStrLength(value): 获取字符串实际长度,对于汉字作了处理。 // function checkStrLength(value,maxLen)): 检查字符串的长度,对于汉字作了处理。 // function checkEmail(value): 检查Email是否合法。 // function isVaildEmail() 检查Email是否合法(旧版网才检查邮件地址合法性)。 // function checkPhone(value): 检查电话号码是否合法。 // function checkPostalcode(value): 检查邮编是否合法。 // function checkCharWithNoException(value): 检查是否有不合法的字符,返回布尔值。 // function checkCharThrowErrorStr(value): 检查是否有不合法的字符,直接抛出异常字符串。 // function checkCharThrowErrorObj(value): 检查是否有不合法的字符,直接抛出异常对象。 // function formatNumber(value,precision): 按精度格式化浮点数,也可将精度设为-1则只进行检查数据的合法性。 // function formatCurrency(value,precision): 按精度格式化货币,也可将精度设为-1则只进行检查数据的合法性。 // function changeCurrencyToBig(value): 将货币金额转换成中文大写。 // function formatDate(value,formatstring): 将11位的日期(比如YYYY-MM-DD)转化为8位的字符串(YYYYMMDD)。 // function unFormatDate(value,formatstring): 将标准化的日期(YYYYMMDD)格式化成指定字符分割的日期格式(比如YYYY-MM-DD)。 // function trim(value): 删除两端空格。 // function getMainPath(): 返回系统主页的完整路径。 // function getVirtualPath(): 返回虚拟目录的路径。 // function exitCurrentPage(): 关闭当前页面。 // function popWelcomeInfo: 右键欢迎信息。 // function OpenDivMask(): 打开遮挡层同时把下拉筐隐藏。 // function CloseDivMask(): 关闭遮挡层同时把下拉筐显示。 // function ChangeForeColor(): 改变事件源字体颜色。 // function HasHtmlTag(val) 判断内容中是否含有html标签 // function post_to_url(path, params, formName) 用于向指定页面提交数据,Sample:post_to_url(window.location.href,{'pwd':'111111', 'username':'admin'}); // function ShowMsg(Message,Title,LanType,OpenMask) 显示信息,函数会自动创建一个"p_msgbox"DIV,提示信息显示在里面 // function CloseMsg() 与ShowMsg配套,用于关闭提示层 // function MoveToCenter(box,width,height) 把Div移动到屏幕中央 // function GetUrlQuerystring(paras) js获取url参数方法 // function IsContainsChinese(value) 字符是否是中文、全角字符 // function IsForbiddenUrl(value,type) 是否是禁用Url // function ToHalfCharacter(val) 全角转半角 // function isLegalName(str) 检查是否为合法字符 // function isCharCodeValid(code,arr) 单个检查char字符是否为合法字符 // function in_arr(arr,val) 查看val是否存在于arr数组中 // function onlyNum(event) 只允许输入数字(@param event:事件) // function getId() 返回对象 // function posMouseToLast(text) 定位鼠标到文本框最后(@param text:文本框) // function centerDialog(id) 弹层屏幕居中(@param id:弹层id[带#号]) // window.dialog = {} 自定义消息弹出框[alert、confirm] // function getSubBytes(value, len) 根据文字的字数是否超限制,增加...(@param value:文本,@param len:截取字段长度) // function htmlEncode(input) 编码文字(@param input:文字) // *********************************************************************************************** // // *********************************************************************************** // // function getStrLength(value) // ----------- // 功能:获取字符串实际长度 // 传入参数: // value:要进行检查的数字 // 返回值:false: 超长 true:合法 // *********************************************************************************** // function getStrLength(value){ var str,Num = 0; for (var i=0;i<value.length;i++){ str = value.substring(i,i+1); if (str<="~") //对双字节字特殊处理 Num+=1; else Num+=2; } return Num; } // *********************************************************************************** // // function checkStrLen(value,maxLen) // -------------- // 功能:检查字符串的长度,对于汉字作了处理 // 传入参数: // value: 要进行检查的数字 // maxLen: 长度 // 传出结果: 返回是否合法 false: 超长 true:合法 // *********************************************************************************** // function checkStrLength(value,maxLen){ var str,Num = 0; for (var i=0;i<value.length;i++){ str = value.substring(i,i+1); if (str<="~") //对双字节字特殊处理 Num+=1; else Num+=2; if (Num>maxLen) return false; } return true; } // *********************************************************************************** // // function checkEmail(value) // -------------- // 功能:检查Email是否合法 // 传入参数: // value: 要进行检查的Email地址 // 传出结果: 返回是否合法 false: 错误 true:合法 // *********************************************************************************** // function checkEmail(s) { /*value = trim(value); var emailexp = /^$|^[a-z][a-z_0-9\.]+@[a-z_0-9\.]+\.[a-z]+$/i; return emailexp.test(value);*/ //changed by jeron 20090511 var flag=false;//标识是否是合法的Email //var reg=/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/; //var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|com|gov|mil|org|edu|int|name|asia|NET|COM|GOV|MIL|ORG|EDU|INT|NAME|ASIA)$/; var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([_.0-9a-zA-Z-]+[.])+([0-9a-zA-Z]{1,})$/;//changed by jeron 20090519 flag=RegExp(reg).test(trim(s)); if(!flag){ return false; } /* var i = 1; var len = s.length; pos1 = s.indexOf("@"); pos2 = s.indexOf("."); pos3 = s.lastIndexOf("@"); pos4 = s.lastIndexOf("."); if ((pos1 <= 0)||(pos1 == len)||(pos2 <= 0)||(pos2 == len)) { return false; } else { if( (pos1 == pos2 - 1) || (pos1 == pos2 + 1)|| ( pos1 != pos3 )|| ( pos4 < pos3 ) ) { return false; } } */ return true; } // *********************************************************************************** // // function isVaildEmail() // -------------- // 功能:检查Email是否合法(旧版网才检查邮件地址合法性) // 传出结果: // *********************************************************************************** // //added by huanghui 使用了51job的email正则表达式 function isVaildEmail(s) { try{ if (s.length > 100) { // window.alert(errtip); return false; } s = s.toLowerCase() var regu = "^(([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|name|NAME)$"; var re = new RegExp(regu); if (s.search(re) != -1) { return true; } else { //window.alert (errtip); return false; } }catch(er){ throw er; } } function isVaildEmail_old(s) { var i = 1; var len = s.length; pos1 = s.indexOf("@"); pos2 = s.indexOf("."); pos3 = s.lastIndexOf("@"); pos4 = s.lastIndexOf("."); if ((pos1 <= 0)||(pos1 == len)||(pos2 <= 0)||(pos2 == len)) { return false; } else { if( (pos1 == pos2 - 1) || (pos1 == pos2 + 1)|| ( pos1 != pos3 )|| ( pos4 < pos3 ) ) { return false; } } return true; } // *********************************************************************************** // // function checkPhone(value) // -------------- // 功能:检查电话号码是否合法 // 传入参数: // value: 要进行检查的电话号码 // 传出结果: 返回是否合法 false: 错误 true:合法 // *********************************************************************************** // function checkPhone(value) { value = trim(value); var phoneexp = /^$|^[+0-9(][0-9\-\*()]+[0-9)]$/; return phoneexp.test(value); } // *********************************************************************************** // // function checkPostalcode(value) // -------------- // 功能:检查邮编是否合法 // 传入参数: // value: 要进行检查的邮编 // 传出结果: 返回是否合法 false: 错误 true:合法 // *********************************************************************************** // function checkPostalcode(value) { value = trim(value); var phoneexp = /^$|^\d{6}$/; return phoneexp.test(value); } // *********************************************************************************** // // function checkCharWithNoException(value) // -------------- // 功能:检查是否有不合法的字符,返回布尔值 // 传入参数: // value: 要进行检查的字符串 // 传出结果: 若有不合法字符抛出异常 // *********************************************************************************** // function checkCharWithNoException(value) { var chars="_'%\*&\+#"+'"'; var regex = new RegExp("["+chars+"]"); if(regex.test(value)) return false; return true; } // *********************************************************************************** // // function checkCharThrowErrorStr(value) // -------------- // 功能:检查是否有不合法的字符,直接抛出异常信息字符串 // 传入参数: // value: 要进行检查的字符串 // 传出结果: 若有不合法字符抛出提示字符串 // *********************************************************************************** // function checkCharThrowErrorStr(value) { var chars="_'%\*&\+#"+'"'; var regex = new RegExp("["+chars+"]"); if(regex.test(value)) throw "不允许包含 "+chars+" 等特殊字符"; if (value.indexOf("--")>=0) throw "不允许包含--字符"; return true; } // *********************************************************************************** // // function checkCharThrowErrorStr(value) // -------------- // 功能:检查是否有不合法的字符,直接抛出异常对象 // 传入参数: // value: 要进行检查的字符串 // 传出结果: 若有不合法字符抛出提示字符串 // *********************************************************************************** // function checkCharThrowErrorObj(value) { var chars="_'%\*&\+#"+'"'; var regex = new RegExp("["+chars+"]"); if(regex.test(value)) throw new Error("不允许包含 "+chars+" 等特殊字符"); if (value.indexOf("--")>=0) throw new Error("不允许包含--字符"); return true; } // *********************************************************************************** // // function formatNumber(value,precision) // -------------- // 功能:按精度格式化浮点数,也可将精度设为-1则只进行检查数据的合法性 // 传入参数: value: 要进行检查的数字 // precision:精度数 // 传出结果: 格式化后的值 // *********************************************************************************** // function formatNumber(value,precision) { var strErr; var num; var s_value,decimal_value; var decimal_sect,interger_sect; var strArrSect,strArr; var defautValue; if (precision>0) { defautValue="0."; var i = 0; while( i < precision) { defautValue =defautValue +"0"; i++; } } else { defautValue = "0"; } if(trim(value)=="") //数据为空时返回 value="0"; if (isNaN(value)) //数据非法时提示,并返回空串 { strErr = "数据"+value+"非法!"; throw new Error(strErr); return defautValue; } if (precision==-1) //只作检查时精度为-1 return Number(value); try { s_value = value.toString()+"."; strArrSect = s_value.split("."); if(typeof(strArrSect[1])=='undefined') { strArrSect[1]=0; } integer_sect = strArrSect[0]; decimal_sect = "0."+strArrSect[1]; num = Math.pow(10,precision); decimal_value = Math.round(decimal_sect*num)/num; decimal_value = decimal_value.toString(); decimal_value = decimal_value+"."; strArr = decimal_value.split("."); if(typeof(strArr[1])=='undefined') { strArr[1] = ""; } while(strArr[1].length<precision) { strArr[1] = strArr[1]+"0" } if(precision!=0) s_value = integer_sect+"."+strArr[1]; else s_value = integer_sect; return s_value; //成功时返回格式化后的值 } catch(err) { throw new Error(err.description); return value; //若失败则返回原值 } } // *********************************************************************************** // // function formatCurrency(value,precision) // -------------- // 功能:按精度格式化货币,也可将精度设为-1则只进行检查数据的合法性, // 以货币的形式显示,如20,000,000.00 // 传入参数: value: 要进行检查的数字 // precision:精度数 // 传出结果: 格式化后的值 // *********************************************************************************** // function formatCurrency(value,precision) { var strErr; var num; var f_value,s_value; var strArr if(trim(value)=="") //数据为空时返回 return ""; if (isNaN(value)) //数据非法时提示,并返回空串 { strErr = "数据"+value+"非法!"; throw new Error(strErr); return "0"; } if (precision==-1) //只作检查时精度为-1 return value; try{ num = Math.pow(10,precision); f_value = Math.round(value*num)/num; s_value = f_value.toString(); s_value = s_value+"."; strArr = s_value.split("."); if(typeof(strArr[1])=='undefined') { strArr[1] = strArr[1].toString(); strArr[1] = ""; } while(strArr[1].length<precision) { strArr[1] = strArr[1]+"0" } var l = parseInt(strArr[0].length)%3 ; s_value = strArr[0].substring(0,l); var len= parseInt(parseInt(strArr[0].length)/3); for(i=0; i<len ;i++) { if(l != 0) { s_value +=","; } s_value += strArr[0].substring(l,l+3); l+=3; } if(precision!=0) s_value = s_value+"."+strArr[1]; else s_value = s_value; return s_value; //成功时返回格式化后的值 }catch(err){ throw new Error(err.description); return value; //若失败则返回原值 } } // *********************************************************************************** // // function changeCurrencyToBig(value) // -------------- // 功能:将金额转换成中文大写 // 传入参数: // value: 要进行转换的金额 // psType:转换方式 1:数字转换 0:人民币币转换 // 传出结果: 转换后的结果 // *********************************************************************************** // function changeCurrencyToBig(value,psType) { var intFen,i; var strArr,strCheck,strFen,strDW,strNum,strBig,strNow; if(trim(value)=="") //数据为空时返回"零" return "零"; if (isNaN(value)) //数据非法时提示,并返回空串 { strErr = "数据"+value+"非法!" alert(strErr); return ""; } strCheck = value+"."; strArr = strCheck.split("."); strCheck = strArr[0]; if(strCheck.length>12) //数据大于等于一万亿时提示无法处理 { strErr = "数据"+value+"过大,无法处理!" alert(strErr); return ""; } try { i = 0; strBig = ""; intFen = value*100; //转换为以分为单位的数值 strFen = intFen.toString(); strArr = strFen.split("."); strFen = strArr[0]; intFen = strFen.length; //获取长度 strArr = strFen.split(""); //将各个数值分解到数组内 while(intFen!=0) //分解并转换 { i = i+1; switch(i) //选择单位 { case 1:strDW = "分";break; case 2:strDW = "角";break; case 3:strDW = "元";break; case 4:strDW = "拾";break; case 5:strDW = "佰";break; case 6:strDW = "仟";break; case 7:strDW = "万";break; case 8:strDW = "拾";break; case 9:strDW = "佰";break; case 10:strDW = "仟";break; case 11:strDW = "亿";break; case 12:strDW = "拾";break; case 13:strDW = "佰";break; case 14:strDW = "仟";break; } switch (strArr[intFen-1]) //选择数字 { case "1":strNum = "壹";break; case "2":strNum = "贰";break; case "3":strNum = "叁";break; case "4":strNum = "肆";break; case "5":strNum = "伍";break; case "6":strNum = "陆";break; case "7":strNum = "柒";break; case "8":strNum = "捌";break; case "9":strNum = "玖";break; case "0":strNum = "零";break; } //处理特殊情况 strNow = strBig.split(""); //分为零时的情况 if((i==1)&&(strArr[intFen-1]=="0")) strBig = "整"; //角为零时的情况 else if((i==2)&&(strArr[intFen-1]=="0")) { //角分同时为零时的情况 if(strBig!="整") strBig = "零"+strBig; } //元为零的情况 else if((i==3)&&(strArr[intFen-1]=="0")) strBig = "元"+strBig; //拾-仟中一位为零且其前一位(元以上)不为零的情况时补零 else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="元")) strBig = "零"+strBig; //拾-仟中一位为零且其前一位(元以上)也为零的情况时跨过 else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零")) {} //拾-仟中一位为零且其前一位是元且为零的情况时跨过 else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="元")) {} //当万为零时必须补上万字 else if((i==7)&&(strArr[intFen-1]=="0")) strBig ="万"+strBig; //拾万-仟万中一位为零且其前一位(万以上)不为零的情况时补零 else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="万")) strBig = "零"+strBig; //拾万-仟万中一位为零且其前一位(万以上)也为零的情况时跨过 else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="万")) {} //拾万-仟万中一位为零且其前一位为万位且为零的情况时跨过 else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零")) {} //万位为零且存在仟位和十万以上时,在万仟间补零 else if((i<11)&&(i>8)&&(strArr[intFen-1]!="0")&&(strNow[0]=="万")&&(strNow[2]=="仟")) strBig = strNum+strDW+"万零"+strBig.substring(1,strBig.length); //单独处理亿位 else if(i==11) { //亿位为零且万全为零存在仟位时,去掉万补为零 if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]=="仟")) strBig ="亿"+"零"+strBig.substring(1,strBig.length); //亿位为零且万全为零不存在仟位时,去掉万 else if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]!="仟")) strBig ="亿"+strBig.substring(1,strBig.length); //亿位不为零且万全为零存在仟位时,去掉万补为零 else if((strNow[0]=="万")&&(strNow[2]=="仟")) strBig = strNum+strDW+"零"+strBig.substring(1,strBig.length); //亿位不为零且万全为零不存在仟位时,去掉万 else if((strNow[0]=="万")&&(strNow[2]!="仟")) strBig = strNum+strDW+strBig.substring(1,strBig.length); //其他正常情况 else strBig = strNum+strDW+strBig; } //拾亿-仟亿中一位为零且其前一位(亿以上)不为零的情况时补零 else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="亿")) strBig = "零"+strBig; //拾亿-仟亿中一位为零且其前一位(亿以上)也为零的情况时跨过 else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="亿")) {} //拾亿-仟亿中一位为零且其前一位为亿位且为零的情况时跨过 else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零")) {} //亿位为零且不存在仟万位和十亿以上时去掉上次写入的零 else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]!="仟")) strBig = strNum+strDW+strBig.substring(1,strBig.length); //亿位为零且存在仟万位和十亿以上时,在亿仟万间补零 else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]=="仟")) strBig = strNum+strDW+"亿零"+strBig.substring(2,strBig.length); else strBig = strNum+strDW+strBig; strFen = strFen.substring(0,intFen-1); intFen = strFen.length; strArr = strFen.split(""); } //按货币转换,但是如果不需要货币则替换掉 if (psType == "1") { if ((strBig.indexOf("角")<0)&&(strBig.indexOf("分")<0)) strBig = strBig.replace("元",""); else strBig = strBig.replace("元","点"); strBig = strBig.replace("整",""); strBig = strBig.replace("角",""); strBig = strBig.replace("分",""); } return strBig; }catch(err){ return ""; //若失败则返回原值 } } // *********************************************************************************** // // function formatDate(value,modal) // -------------- // 功能:将11位的日期转化为8位的字符串 // 传入参数: // value: 要进行格式化的日期串(11位 YYYY-MM-DD...) // modal: 输入格式号 // 1:YYYY-MM-DD // 2:MM-DD-YYYY // 3:DD-MM-YYYY // 4:YYYY-DD-MM // 传出结果: 格式化后的字符串(8位 YYYYMMDD) // 完成日期: 2001年5月21日 // *********************************************************************************** // function formatDate(value,modal) { var strYear,strMonth,strDay,strDate; var strValue,intlong; if((trim(value)=="")||(trim(modal)=="")) //日期为空时返回 return "00000000"; strValue = value; if(trim(modal)=="1") //处理1:YYYY-MM-DD的情况 { strYear = strValue.substring(0,4); strMonth = strValue.substring(5,7); strDay = strValue.substring(8,10); strDate = strYear+strMonth+strDay; } else if(trim(modal)=="2") //处理2:MM-DD-YYYY的情况 { strYear = strValue.substring(6,10); strMonth = strValue.substring(0,2); strDay = strValue.substring(3,5); strDate = strYear+strMonth+strDay; } else if(trim(modal)=="3") //处理3:DD-MM-YYYY的情况 { strYear = strValue.substring(6,10); strMonth = strValue.substring(3,5); strDay = strValue.substring(0,2); strDate = strYear+strMonth+strDay; } else if(trim(modal)=="4") //处理4:YYYY-DD-MM的情况 { strYear = strValue.substring(0,4); strMonth = strValue.substring(8,10); strDay = strValue.substring(5,7); strDate = strYear+strMonth+strDay; } else //若有其他情况则返回 { strDate = "00000000"; } intlong = strDate.length; if ((intlong!=8)||(isNaN(strDate))) //日期非法时提示,并返回 { strErr = "日期"+value+"转换时有错误!"; alert(strErr); return "00000000"; } return strDate; } // *********************************************************************************** // // function unFormatDate(value,formatstring) // -------------- // 功能:将标准化的日期(YYYYMMDD)格式化成指定字符分割的日期格式(比如YYYY-MM-DD) // 传入参数: value: 要进行格式化的日期串(8位 YYYYMMDD) // formatstring:格式化方式(11位 年:YYYY,月:MM,日:DD) // 传出结果: 格式化后的字符串(YYYY/MM/DD...) // 完成日期: 2001年5月22日 // *********************************************************************************** // function unFormatDate(value,formatstring) { var strDate,strDay,strMonth,strYear; var strFirst,strSecond,strLast,strFGet; var strErr,strMid1,strMid2; var intlong; strDate = trim(value); intlong = strDate.length; if ((intlong!=8)||(isNaN(strDate))) //数据非法时提示,并返回空串 { strErr = "日期"+strDate+"有错误!"; alert(strErr); return ""; } strYear = strDate.substring(0,4); //拆解字符串 strMonth = strDate.substring(4,6); strDay = strDate.substring(6,8); strDate = trim(formatstring); if(strDate=="") //字符串为空时默认“YYYY年MM月DD日”格式 { strFGet = strYear+"年"+strMonth+"月"+strDay+"日"; return strFGet; } strFirst = strDate.substring(0,1); if(strFirst=="Y") //年在前的情况 { strSecond = strDate.substring(5,6); strLast = strDate.substring(8,9); strMid1 = strDate.substring(4,5); strMid2 = strDate.substring(7,8); if(strMid1!=strMid2) //前后间隔不统一时默认“YYYY-MM-DD”格式 { strFGet = strYear+"-"+strMonth+"-"+strDay; return strFGet; } if((strSecond=="M")&&(strLast=="D")) //“YYYY#MM#DD”格式 { strFGet = strYear+strMid1+strMonth+strMid1+strDay; return strFGet; } else if((strSecond=="D")&&(strLast=="M")) //“YYYY#DD#MM”格式 { strFGet = strYear+strMid1+strDay+strMid1+strMonth; return strFGet; } else //有错误出现时默认“YYYY-MM-DD”格式 { strFGet = strYear+"-"+strMonth+"-"+strDay; return strFGet; } } else if((strFirst=="M")||(strFirst=="D")) //年在后的情况 { strSecond = strDate.substring(3,4); strLast = strDate.substring(6,7); strMid1 = strDate.substring(2,3); strMid2 = strDate.substring(5,6); if(strMid1!=strMid2) //前后间隔不统一时默认“MM-DD-YYYY”格式 { strFGet = strMonth+"-"+strDay+"-"+strYear; return strFGet; } if((strFirst=="M")&&(strSecond=="D")) //“MM-DD-YYYY”格式 { strFGet = strMonth+strMid1+strDay+strMid1+strYear; return strFGet; } else if((strFirst=="D")&&(strSecond=="M")) //“DD-MM-YYYY”格式 { strFGet = strDay+strMid1+strMonth+strMid1+strYear; return strFGet; } else //有错误出现时默认“MM-DD-YYYY”格式 { strFGet = strMonth+"-"+strDay+"-"+strYear; return strFGet; } } else //有错误出现时默认“YYYY-MM-DD”格式 { strFGet = strYear+"-"+strMonth+"-"+strDay; return strFGet; } } // **************************************************************** // // function trim(value) // -------------- // 功能:删除两端空格(= trim) // 参数: value 要格式化的字符串 // 返回: 格式化后的字符串 // **************************************************************** // function trim(value) { var res = String(value).replace(/^[\s]+|[\s]+$/g,''); return res; } // *********************************************************************************** // // function getMainPath() // -------------- // 功能:返回系统主页的完整路径 // 传出结果: 系统主页的完整路径 // *********************************************************************************** // function getMainPath() { return GetVirtualPath()+"MainLogin.aspx"; //返回主页 } // *********************************************************************************** // // function getVirtualPath() // -------------- // 功能:返回虚拟目录的路径,形如:"/drp/" // 传出结果: 虚拟目录的路径 // *********************************************************************************** // function getVirtualPath() { var p = window.location.pathname; //取当前页地址 if(p.substring(0,1)!="/") p = "/"+p; var str = p.replace(/^[/]\w*[/]/,""); //将虚拟目录从字符串中清除 return p.substring(0,p.length - str.length); //返回虚拟目录 } // *********************************************************************************** // // function exitCurrentPage() // -------------- // 功能:关闭当前页面 // 传出结果: // *********************************************************************************** // function exitCurrentPage() { window.returnValue = false; window.opener = null; window.close(); return false; } // *********************************************************************************** // // function popWelcomeInfo 右键欢迎信息() // -------------- // 功能:右键欢迎信息 // 传出结果: // *********************************************************************************** // function popWelcomeInfo() { var keyC = window.event.button; if (keyC==2) { alert("提示信息!"); return false; } } // *********************************************************************************** // // function isDigit 检查输入是否全部为数字() // -------------- // 功能:检查输入是否全部为数字 // 传出结果: // *********************************************************************************** // function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } // *********************************************************************************** // // function OpenDivMask() // -------------- // 功能:打开遮挡层同时把下拉筐隐藏 // 传出结果: // *********************************************************************************** // function OpenDivMask() { var divMask = document.getElementById("DivMask"); if(!divMask){ divMask = document.createElement("div"); divMask.id = "DivMask"; divMask.style.display = "block"; divMask.style.top = divMask.style.left = divMask.style.margin = divMask.style.padding = "0px"; var screenWidth; var screenHeight; if(document.body.scrollHeight<document.documentElement.offsetHeight){ screenHeight = document.documentElement.offsetHeight + "px"; } else{ screenHeight = document.body.scrollHeight + "px"; } if(document.body.scrollWidth<document.documentElement.offsetWidthh){ screenWidth = document.documentElement.offsetWidth + "px"; } else{ screenWidth = document.body.scrollWidth + "px"; } divMask.style.width = screenWidth; divMask.style.height = screenHeight; divMask.style.position = "absolute"; divMask.style.zIndex = "99"; divMask.style.background = "#D3D3D3"; divMask.style.filter = "alpha(opacity=50)"; divMask.style.opacity = 50/100; divMask.style.MozOpacity = 50/100; document.body.appendChild(divMask); }else{ divMask.style.display = "block"; } //屏蔽SELECT var allselect = document.getElementsByTagName("select"); if (allselect != null && allselect.length > 0){ for (var i=0; i<allselect.length; i++){ allselect[i].style.visibility = "hidden"; } } } // *********************************************************************************** // // function OpenDivMask() // -------------- // 功能:关闭遮挡层同时把下拉筐显示 // 传出结果: // *********************************************************************************** // function CloseDivMask() { var objDialog = document.getElementById("DivMask"); if (objDialog) objDialog.style.display = "none"; //屏蔽SELECT var allselect = document.getElementsByTagName("select"); if (allselect != null && allselect.length > 0){ for (var i=0; i<allselect.length; i++){ allselect[i].style.visibility = "visible"; } } } // *********************************************************************************** // // function ChangeForeColor() // -------------- // 功能:改变字体颜色 // 传出结果: // *********************************************************************************** // function ChangeForeColor(src,color){ src.style.color = color; } ////////////////added by jeron 20090514 function gid(id) { return document.getElementById?document.getElementById(id):null; } function gname(name) { return document.getElementsByTagName?document.getElementsByTagName(name):new Array(); } function Browser() { var ua, s, i; this.isIE = false; this.isNS = false; this.isOP = false; this.isSF = false; ua = navigator.userAgent.toLowerCase(); s = "opera"; if ((i = ua.indexOf(s)) >= 0){this.isOP = true;return;} s = "msie"; if ((i = ua.indexOf(s)) >= 0) {this.isIE = true;return;} s = "netscape6/"; if ((i = ua.indexOf(s)) >= 0) {this.isNS = true;return;} s = "gecko"; if ((i = ua.indexOf(s)) >= 0) {this.isNS = true;return;} s = "safari"; if ((i = ua.indexOf(s)) >= 0) {this.isSF = true;return;} } function CloseDivMask( DIV) { var objdiv = document.getElementById(DIV); if (objdiv) objdiv.style.display = "none"; var objDialog = document.getElementById("DivMask"); if (objDialog) objDialog.style.display = "none"; var allselect = gname("select"); for (var i=0; i<allselect.length; i++) allselect[i].style.visibility = "visible"; } function OpenDivMask() { var browser = new Browser(); var objScreen = gid("DivMask"); if(!objScreen) var objScreen = document.createElement("div"); var oS = objScreen.style; objScreen.id = "DivMask"; oS.display = "block"; oS.top = oS.left = oS.margin = oS.padding = "0px"; var wh; var hg if(document.body.scrollHeight<document.documentElement.offsetHeight) { hg = document.documentElement.offsetHeight + "px"; } else { hg = document.body.scrollHeight + "px"; } if(document.body.scrollWidth<document.documentElement.offsetWidthh) { wh = document.documentElement.offsetWidth + "px"; } else { wh = document.body.scrollWidth + "px"; } oS.width = wh; oS.height = hg; oS.position = "absolute"; oS.zIndex = "99"; if ((!browser.isSF) && (!browser.isOP)) { oS.background = "#D3D3D3"; } else { oS.background = "#D3D3D3"; } oS.filter = "alpha(opacity=50)"; oS.opacity = 50/100; oS.MozOpacity = 50/100; document.body.appendChild(objScreen); var allselect = gname("select"); for (var i=0; i<allselect.length; i++) { //关键字二次排序遮蔽层时dropdownlist特殊处理 if (allselect[i].id.indexOf("Keyword1")<0 && allselect[i].id.indexOf("Keyword2")<0 && allselect[i].id.indexOf("Keyword3")<0) { allselect[i].style.visibility = "hidden"; } } } function CloseDiv(DIV) { CloseDivMask(DIV); } //构造去掉空格函数 String.prototype.trim=function() { // 用正则表达式将前后空格 // 用空字符串替代。 return this.replace(/(^\s*)|(\s*$)/g, ""); } //added by jeron 20090512 function showEmailError_one(objbtn,Msg){ var btn=objbtn; var t=objbtn.offsetTop; var l=objbtn.offsetLeft; var h=objbtn.offsetHeight; var w=objbtn.offsetWidth; while(objbtn=objbtn.offsetParent) { t+=objbtn.offsetTop; l+=objbtn.offsetLeft; } document.getElementById("EmailErrShow").style.visibility=""; document.getElementById("EmailErrShow").style.top=t +h+ "px"; //document.getElementById("EmailErrShow").style.left=l+w+"px"; document.getElementById("EmailErrShow").style.right=w+"px"; document.getElementById("EmailErrShow").style.display = "block"; //alert(Msg); document.getElementById("LabelEmailError").innerHTML=Msg OpenDivMask(); document.getElementById("EmailErrShow").focus();//added by jeron 20090720 } //added by jeron 20090519 中文信息中的Email验证******* function showEmailError_oneC(objbtn,Msg){ var btn=objbtn; var t=objbtn.offsetTop; var l=objbtn.offsetLeft; var h=objbtn.offsetHeight; var w=objbtn.offsetWidth; while(objbtn=objbtn.offsetParent) { t+=objbtn.offsetTop; l+=objbtn.offsetLeft; } document.getElementById("EmailErrShowC").style.visibility=""; document.getElementById("EmailErrShowC").style.top=t +h+ "px"; document.getElementById("EmailErrShowC").style.left=l+"px"; document.getElementById("EmailErrShowC").style.display = "block"; document.getElementById("LabelEmailErrorC").innerHTML=Msg OpenDivMask(); document.getElementById("EmailErrShowC").focus();//added by jeron 20090720 } //added by jeron 20090519 英文信息中的Email验证******* function showEmailError_oneE(objbtn,Msg){ var btn=objbtn; var t=objbtn.offsetTop; var l=objbtn.offsetLeft; var h=objbtn.offsetHeight; var w=objbtn.offsetWidth; while(objbtn=objbtn.offsetParent) { t+=objbtn.offsetTop; l+=objbtn.offsetLeft; } document.getElementById("EmailErrShowE").style.visibility=""; document.getElementById("EmailErrShowE").style.top=t +h+ "px"; document.getElementById("EmailErrShowE").style.left=l+"px"; document.getElementById("EmailErrShowE").style.display = "block"; document.getElementById("LabelEmailErrorE").innerHTML=Msg OpenDivMask(); document.getElementById("EmailErrShowE").focus();//added by jeron 20090720 } //added by jeron 20090514 function chkEmail_one(objbtn) { //检查是否为空 var emailValue=objbtn.value.trim();//得到Email整个串(去掉了前后空格和中间空格) if(emailValue==""){ showEmailError_one(objbtn,C_MailAddess2); return; } //if(emailValue.lastIndexOf(";")==(emailValue.length-1)){//以";"结尾 // emailValue=emailValue.substring(0,emailValue.length-1); //} var flag=false;//标识是否是合法的Email //var reg=/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/; //var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|com|gov|mil|org|edu|int|name|asia|NET|COM|GOV|MIL|ORG|EDU|INT|NAME|ASIA)$/; var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([_.0-9a-zA-Z-]+[.])+([0-9a-zA-Z]{1,})$/;//changed by jeron 20090519 //循环判断Email数组各个Email的合法性 flag=RegExp(reg).test(emailValue.trim()); if(!flag){ showEmailError_one(objbtn,C_MailAddess2); return; } } //added by jeron 20090519 中文信息中的Email验证******* function chkEmail_oneC(objbtn) { var msg=""; if(objbtn.name=="txtEmailAddr1C"){ msg=emailMsgC1; }else if(objbtn.name=="txtEmailAddr2C"){ msg=emailMsgC2; }else if(objbtn.name=="txtEmailAddr3C"){ msg=emailMsgC3; }else if(objbtn.name=="txtEmailC"){ msg="请输入有效的E-mail地址"; } //检查是否为空 var emailValue=objbtn.value.trim();//得到Email整个串(去掉了前后空格和中间空格) if(emailValue==""){ //showEmailError_oneC(objbtn,msg); return; } //if(emailValue.lastIndexOf(";")==(emailValue.length-1)){//以";"结尾 // emailValue=emailValue.substring(0,emailValue.length-1); //} var flag=false;//标识是否是合法的Email //var reg=/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/; //var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|com|gov|mil|org|edu|int|name|asia|NET|COM|GOV|MIL|ORG|EDU|INT|NAME|ASIA)$/; var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([_.0-9a-zA-Z-]+[.])+([0-9a-zA-Z]{1,})$/;//changed by jeron 20090519 //循环判断Email数组各个Email的合法性 flag=RegExp(reg).test(emailValue.trim()); if(!flag){ //alert("请输入有效的E-mail地址!"); showEmailError_oneC(objbtn,msg); return; } } //added by jeron 20090519 英文信息中的Email验证******* function chkEmail_oneE(objbtn) { var msg=""; if(objbtn.name=="txtEmailAddr1E"){ msg=emailMsgE1; }else if(objbtn.name=="txtEmailAddr2E"){ msg=emailMsgE2; }else if(objbtn.name=="txtEmailAddr3E"){ msg=emailMsgE3; }else if(objbtn.name=="txtEmailE"){ msg="Please input right E-mail!"; } //检查是否为空 var emailValue=objbtn.value.trim();//得到Email整个串(去掉了前后空格和中间空格) if(emailValue==""){ //showEmailError_oneE(objbtn,msg); return; } var flag=false;//标识是否是合法的Email var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([_.0-9a-zA-Z-]+[.])+([0-9a-zA-Z]{1,})$/;//changed by jeron 20090519 //循环判断Email数组各个Email的合法性 flag=RegExp(reg).test(emailValue.trim()); if(!flag){ //alert("请输入有效的E-mail地址!"); showEmailError_oneE(objbtn,msg); return; } } //判断内容中是否含有html标签 added by linsendu 20110526 function HasHtmlTag(val) { return /<[a-zA-Z!]/g.test(val); } //Sample:post_to_url(window.location.href,{'pwd':'111111', 'username':'admin'}); function post_to_url(path, params, formName) { //如果没有特别声明,自动创建一个 var form; if (formName == null) form = document.createElement("form"); else form = document.getElementById(formName); form.setAttribute("method", "post"); form.setAttribute("action", path); for(var key in params) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("type", "hidden"); hiddenField.setAttribute("name", key); hiddenField.setAttribute("value", params[key]); form.appendChild(hiddenField); } document.body.appendChild(form); form.submit(); } function CloseMsg(OpenMask) { var msgBox = document.getElementById('p_msgbox'); if (msgBox != null) msgBox.style.display = "none"; if (OpenMask != null) CloseDivMask(); } function ShowMsg(Message,Title,LanType,OpenMask) { var closeTitle = "关闭"; var okText = "确 认"; if (LanType.toLowerCase()=="en-us") { closeTitle = "Close"; okText = "Confirm"; } var msgBox = document.getElementById('p_msgbox'); if (msgBox == null){ var boarddiv = "<div style='z-index: 501; position: absolute;width: 250px;' id ='p_msgbox'></div>"; $(document.body).append(boarddiv); msgBox = document.getElementById('p_msgbox'); } var html = "<table cellpadding='0' cellspacing='0' class='inbox_table3'>"; html +="<tr><td class='inbox_td23'><p class='inbox_p4'>" + Title + "</p><p class='inbox_p5'><img alt='"+closeTitle+"' src='http://img01.51jobcdn.com/imehire/ehire2007/default/image/inbox/layerClose.gif' onclick=\"CloseMsg("+OpenMask+")\" style='vertical-align: middle;cursor: pointer;' /></p></td></tr>"; html +="<tr><td style='padding: 10px;' align='center'>" + Message + "</td></tr>"; html +="<tr><td style='background-image: url(http://img01.51jobcdn.com/imehire/ehire2007/default/image/inbox/dot_line_gray.gif); width: 100%;height: 2px;'></td></tr>"; html +="<tr><td style='height: 30px; vertical-align: middle; text-align: center;'><input id='btnWarnOk' type='button' class='inbox_btnimg2' title='"+okText+"' value='"+okText+"' onclick=\"CloseMsg("+OpenMask+")\" /></td></tr>"; html +="</table>"; msgBox.innerHTML = html; msgBox.style.display = ""; // 层窗口居中显示 MoveToCenter(msgBox); // 打开遮罩层 if (OpenMask) OpenDivMask(); } // 获取窗口及浏览器的宽度和高度 pageWidthHeight=function(){ return{ scrollTop:function(){return document.body.scrollTop||document.documentElement.scrollTop}, width:function(){return self.innerWidth||(document.documentElement.clientWidth||document.body.clientWidth)}, height:function(){return self.innerHeight||(document.documentElement.clientHeight||document.body.clientHeight)}, pageHeight:function(){ var d=document, b=d.body, e=d.documentElement; return Math.max(Math.max(b.scrollHeight,e.scrollHeight),Math.max(b.clientHeight,e.clientHeight)) }, pageWidth:function(){ var d=document, b=d.body, e=d.documentElement; return Math.max(Math.max(b.scrollWidth,e.scrollWidth),Math.max(b.clientWidth,e.clientWidth)) } } }(); function MoveToCenter(box,width,height){ var cw=pageWidthHeight.width(); var ch=pageWidthHeight.height(); var sh=pageWidthHeight.scrollTop(); var sl=document.documentElement.scrollLeft; var boxw=(box.offsetWidth||500); if(parseInt(width)>0){ boxw=width>=500?500:width; } var boxh=(box.offsetHeight||230); if(parseInt(height)>0){ boxh=height>=230?230:height; } box.style.left='50%'; box.style.top=(parseInt(ch)/2+sh)+'px'; box.style.marginTop=-(parseInt(boxh)/2)+'px'; box.style.marginLeft=-(parseInt(boxw)/2)+'px'; } //js获取url参数方法 function GetUrlQuerystring(paras){ var url = location.href; var paraString = url.substring(url.indexOf("?")+1,url.length).split("&"); var paraObj = {} for (i=0; j=paraString[i]; i++){ paraObj[j.substring(0,j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=")+1,j.length); } var returnValue = paraObj[paras.toLowerCase()]; if(typeof(returnValue)=="undefined"){ return ""; }else{ return returnValue; } } // *********************************************************************************** // // function IsContainsChinese(value) // ----------- // 功能:字符是否是中文、全角字符 // 作者:peggy 20120830 // 传入参数: // value:要进行检查的字符串 // 返回值:true: 包含中文/全角字符 false:不包含 // *********************************************************************************** // function IsContainsChinese(value) { var ch, i; for (i=0; i< value.length; i++){ ch = value.charCodeAt(i); if(ch<0) ch = ch + 65536; if(ch>255) return true; } return false; } // 禁用网址 var forbiddenurl_array = new Array(); //注意:网止全部小写 forbiddenurl_array[0] = 'zhaopin.com'; forbiddenurl_array[1] = 'chinahr.com'; forbiddenurl_array[2] = 'cjol.com'; forbiddenurl_array[3] = '58.com'; forbiddenurl_array[4] = 'ganji.com'; forbiddenurl_array[5] = 'dajie.com'; forbiddenurl_array[6] = 'baijob.com'; forbiddenurl_array[7] = '104china.com'; forbiddenurl_array[8] = 'hirede.com'; //forbiddenurl_array[9] = 'yingjiesheng.com';//modify by linsen.du 20140929 removeit forbiddenurl_array[9] = 'ganji.cn'; forbiddenurl_array[10] = 'jobcn.com'; forbiddenurl_array[11] = 'job168.com'; forbiddenurl_array[12] = 'job001.cn'; forbiddenurl_array[13] = 'an9.com'; forbiddenurl_array[14] = 'zhaopin.cn'; forbiddenurl_array[15] = 'chinahr.cn'; // *********************************************************************************** // // function IsForbiddenUrl(value,type) // ----------- // 功能:是否是禁用Url // 作者:peggy 20120830 // 传入参数: // value:要进行检查的字符串 // type:验证类型 url--网址;email--邮箱 // 返回值:true: 禁用网址 false:非禁用网址 // *********************************************************************************** // function IsForbiddenUrl(value,type) { var val = trim(value); // 去2边空格 val = ToHalfCharacter(val); // 全角转半角 val = val.toLowerCase(); // 全转小写 if(type.toLowerCase() == "url") { // 判断前缀 if(val.indexOf('www.') == -1) { if(val.indexOf('http') == -1) { val = "http://"+val; } } // 判断网址是否禁用 for(var i = 0; i < forbiddenurl_array.length; i++) { if(val.indexOf('.'+forbiddenurl_array[i]) > -1) return true; if(val.indexOf('//'+forbiddenurl_array[i]) > -1) return true; } } else if(type.toLowerCase() == "email") { var pos = val.indexOf('@'); if(pos > -1) { val= val.substr(pos).toLowerCase(); } for(var i = 0; i < forbiddenurl_array.length; i++) { if(val.indexOf('@'+forbiddenurl_array[i]) > -1) return true; if(val.indexOf('.'+forbiddenurl_array[i]) > -1) return true; } } return false; } // *********************************************************************************** // // function ToHalfCharacter(val) // ----------- // 功能:全角转半角 // 作者:peggy 20120830 // 传入参数: // value:要进行检查的字符串 // 返回值:转换后字符串 // *********************************************************************************** // function ToHalfCharacter(val){ var result=""; for (var i = 0; i < val.length; i++){ if (val.charCodeAt(i)==12288){ result+= String.fromCharCode(val.charCodeAt(i)-12256); continue; } if (val.charCodeAt(i)>65280 && val.charCodeAt(i)<65375) result+= String.fromCharCode(val.charCodeAt(i)-65248); else result+= String.fromCharCode(val.charCodeAt(i)); } return result; } // *********************************************************************************** // // function isLegalName(str) // ----------- // 功能:检查是否为合法字符 // 作者:Lisa Chen 2012-09-03 // 传入参数:str要检查的字符串 // 返回值:bool // *********************************************************************************** // function isLegalName(str) { var str_use_sign = " #&()+-./\\,: —,、:()_[]《》"; var arr_use_sign = new Array(); for(var i=0;i<str_use_sign.length;i++) { arr_use_sign[i] = str_use_sign.charCodeAt(i); } for(var i=0;i<str.length;i++) { if( !isCharCodeValid(str.charCodeAt(i),arr_use_sign) ) return false; } return true; } // *********************************************************************************** // // function isCharCodeValid(code,arr) // ----------- // 功能:单个检查char字符是否为合法字符 // 作者:Lisa Chen 2012-09-03 // 传入参数:code单个char字符,合法的特殊字符数组 // 返回值:bool // *********************************************************************************** // function isCharCodeValid(code,arr) { //合法的字符 if(in_arr(arr,code)) return true; //数字 if(code >= 48 && code <= 57) return true; //大写字母 if(code >= 65 && code <= 90) return true; //小写字母 if(code >= 97 && code <= 122) return true; //中文 日文 韩文 if(code >= 12353 && code <= 65071) return true; //日文片假名小写 if(code >= 65328 && code <= 65439) return true; return false; } // *********************************************************************************** // // function in_arr(arr,val) // ----------- // 功能:查看val是否存在于arr数组中 // 作者:Lisa Chen 2012-09-03 // 传入参数:arr数组,val单个需检测的值 // 返回值:bool // *********************************************************************************** // function in_arr(arr,val) { for(var i = 0; i < arr.length; i++) { if(arr[i] == val) return true; } return false; } /*字符串格式化方法 by huangpeng 20121127*/ String.prototype.format = function() { var a = arguments; return this.replace(/\{(\d+)\}/g, function(e, f) { return a[f]; }); } /*只允许输入数字(@param event:事件) by huangpeng 20121127*/ function onlyNum(event) { event = event || window.event; if (!window.event) event.charCode == 35 || event.charCode == 45 || event.charCode == 0 || (event.charCode < 47 || event.charCode > 57) && event.preventDefault(); else if (! (event.keyCode == 35 || event.keyCode == 45)) if (event.keyCode < 47 || event.keyCode > 57) window.event.returnValue = !1; } /*返回对象 by huangpeng 20121127*/ function getId() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element); if (arguments.length == 1) return element; elements.push(element); } return elements; } /*定位鼠标到文本框最后(@param text:文本框) by huangpeng 20121127*/ function posMouseToLast(text) { if (text && (text = getId(text))) { if (text.setSelectionRange) { text.setSelectionRange(text.value.length, text.value.length); text.focus(); } else { text.createTextRange && (text = text.createTextRange(), text.collapse(!1), text.select()); } } } /*弹层屏幕居中(@param id:弹层id[带#号]) by huangpeng 20121127*/ function centerDialog(id) { if (id) { var a = $("div.ui-dialog").has("{0}".format(id)); a.css({ top: (($(window).height() - a.outerHeight()) / 2) + $(window).scrollTop() + "px", left: (($(window).width() - a.outerWidth()) / 2) + $(window).scrollLeft() + "px" }); } } /*自定义消息弹出框[alert、confirm] by huangpeng 20121127*/ window.dialog = { cancel: "取消", id: 'dialogBox', title: "消息", sumbit: "确定", isCenter: true, /*警告弹出框(@param msg:提示信息,@param optIsAutoClose:是否自动关闭弹出层[2秒自动关闭][可选],@param optCallBack:回调函数[可选])*/ alert: function(msg, optIsAutoClose, optCallBack) { var a = this.init(), b = {}; b[this.sumbit] = function() { $(this).dialog('close'); }; a.dialog('option', 'buttons', b); a.dialog('option', 'close', function() { optCallBack && optCallBack(); }); a.html(msg).dialog('open'); optIsAutoClose && this.timeClose(); return !1; }, /*关闭弹出框*/ close: function() { $('#{0}'.format(this.id)).is(':visible') && $('#{0}'.format(this.id)).dialog('close'); this.t && clearTimeout(this.t); }, /*确认弹出框(@param msg:提示信息,@param optCallBack:回调函数[可选])*/ confirm: function(msg, optCallBack) { var a = this.init(), b = {}; b[this.sumbit] = function() { $(this).dialog('close'); optCallBack && optCallBack(); }; b[this.cancel] = function() { $(this).dialog('close'); }; a.dialog('option', 'buttons', b); a.dialog('option', 'close', null); a.html(msg).dialog('open'); }, init: function() { var a = $('#{0}'.format(this.id)), style = this.isCenter ? "text-align:center;padding:35px 0 0 0;": "padding:35px;"; a.length == 0 && (a = $("<div id='{0}' style='" + style + "'></div>".format(this.id)).appendTo('body'), a.dialog({ title: this.title, bgiframe: !0, modal: !0, autoOpen: !1, draggable: !1, resizable: !1, width: 400, resizable: !1 })); return a; }, /*2秒后关闭弹出框*/ timeClose: function() { this.t = setTimeout(function() { dialog.close() }, 2E3); } } /*根据文本的字数是否超限制,增加...(@param value:文本,@param len:截取字段长度)*/ function getSubBytes(value, len) { if (len && (getStrLength(value) > len)) { len -= 2; // 长度减少2 for (var j = 0, text = "", i = 0; i < value.length; i++) { value.charCodeAt(i) > 255 ? j += 2 : j++; if (j > len) return "<span title='{0}'>{1}...</span>".format(value.replace(/'/g, "´"), htmlEncode(text)); text += value.charAt(i); } } return htmlEncode(value); } /*编码文字(@param input:文字)*/ function htmlEncode(input) { var div = document.createElement("div"); var text = document.createTextNode(input); div.appendChild(text); var output = div.innerHTML; div = null; return output; } //获得当前页面大小 function getPageSize() { var winH; if (window.innerHeight) { winH = window.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) { winH = document.documentElement.clientHeight; } else if (document.body) { winH = document.body.clientHeight; }; return { WinH: winH }; } //设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 function getPageScroll() { var y; if (window.pageYOffset) { y = window.pageYOffset; } else if (document.documentElement && document.documentElement.scrollTop) { y = document.documentElement.scrollTop; } else if (document.body) { y = document.body.scrollTop; }; return { Y: y }; } //获取元素到顶部body的距离 function getOffsetTop(el) { if(typeof(el)=="undefined") { return; } var t = el.offsetTop; while (el = el.offsetParent) { t += el.offsetTop; }; return t; } //添加事件 function addEvent(el,type,fn) { if (window.addEventListener) { el.addEventListener(type, fn, false); } else if (window.attachEvent) { el.attachEvent('on' + type, fn); } else { el['on' + type] = fn; }; } //添加事件 function addEvent(el,type,fn) { if (window.addEventListener) { el.addEventListener(type, fn, false); } else if (window.attachEvent) { el.attachEvent('on' + type, fn); } else { el['on' + type] = fn; }; } /** * 验证文件是否为图片 * @param {object} file[文件UI] * @param {object|null} out[输出对象] * @return boolean */ function checkIsImage(file, out) { var IMAGE_EXT = 'BMP|GIF|JPG|JPEG|PNG', fileName = trim(file.value); out = out || {}; var lang = undefined == muti_language ? {}: muti_language; if (0 === fileName.length) { out.msg = lang.EMPTY_FILE; return ! 1; } var fileExtIndex = fileName.lastIndexOf('.'); if (fileExtIndex > -1) { var extend = fileName.substring(fileExtIndex + 1).toUpperCase(); if (in_arr(IMAGE_EXT.split('|'), extend)) { return ! 0; } } out.msg = lang.FILE_FORMAT_ERROR; return ! 1; }