/** * 平台JS工具类 */ var Tools = { /** * 获得项目URL路径 * @returns {String} */ getContextUrl : function() { return "https://zhxy.ynsgqfgx.com/yngqfgx"; }, /** * 获得Url参数值 * @param name 参数名 * @returns */ getUrlQueryString : function(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }, checkFileType : function(filepath,type) { if(typeof(type)=="undefined") { return false; } var containsign = "0"; if (filepath=="") { Page.alertMsgBox("请为上传选择一个文件!!!"); return false; } var extArray = new Array(); extArray = type.split("|"); var filepathArray = new Array(); filepathArray = filepath.split("."); var fileext ="."+filepathArray[filepathArray.length-1]; for (var i = 0; i < extArray.length; i++) { if (fileext.toLowerCase() == extArray[i].toLowerCase()) { containsign = "1"; } } if (containsign == "1") { return true; } else { Page.errorMsgBox("文件类型有误!只允许包含"+type+"类型的文件。") return false; } }, isJsonObject : function(obj){ // return typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length; return $.isPlainObject(obj); }, //判读字符串是否为空或不存在 isEmptyString : function(str){ return typeof(str)=="undefined" || str.length==0; }, //判断数组是否为空 isEmptyArray : function(array){ return !($.isArray(array) && array.length>0); }, //合并2个json对象 mergeJsonObject : function(target, source) { for (var obj in source) { target[obj] = source[obj]; } return target; }, /** * null => '' * @param {*} data 要处理的数据 */ jsonNullToStr : function(data, char) { for (x in data) { if (data[x] === null) { // 如果是null 把直接内容转为 '' if (char == undefined) data[x] = ''; } else { if (Array.isArray(data[x])) { // 是数组遍历数组 递归继续处理 data[x] = data[x].map(Tools.jsonNullToStr, data[x]); } if(typeof(data[x]) === 'object') { // 是json 递归继续处理 data[x] = Tools.jsonNullToStr(data[x]); } } } return data; } }; /** * 在当前页面中执行回车函数 * 在页面中将需要回车执行的函数定义enterFunction()中 */ $(document).ready(function() { jQuery.i18n.properties({ name : 'strings', //资源文件名称 path : CONST_PROJECT_URLPATH +'/webres/pc/lang/', //资源文件路径 mode : 'map', //用Map的方式使用资源文件中的值 language : 'zh', /*callback : function() {//加载成功后设置显示内容 alert("aaaa"); alert($.i18n.prop('pc_form_validate')); }*/ }); $(document).keydown(function(e) { var curKey = e.which; if (curKey == 13) { if (typeof (eval(enterFunction)) == "function") { enterFunction(); } return false; } }); }) /** * String对象属性扩展 */ // Trim()函数 String.prototype.Trim = function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); } // replace函数的扩展, 替换所有符合条件的字符串 String.prototype.replaceAll = function(str1,str2){ return this.replace(new RegExp(str1,"gm"),str2); } // Html编解码函数 String.prototype.htmlDecodeByRegExp=function (){ var s = ""; if(this.length == 0) return ""; s = this.replace(/&/g,"&"); s = s.replace(/</g,"<"); s = s.replace(/>/g,">"); s = s.replace(/ /g," "); s = s.replace(/'/g,"\'"); s = s.replace(/"/g,"\""); return s; } String.prototype.htmlEncodeByRegExp=function (){ var s = ""; if(this.length == 0) return ""; s = this.replace(/&/g,"&"); s = s.replace(//g,">"); s = s.replace(/ /g," "); s = s.replace(/\'/g,"'"); s = s.replace(/\"/g,"""); return s; } //替换选择范围时ID中多余出来的字符 String.prototype.replaceScopeChar=function() { var _returnstr = this; _returnstr = _returnstr.replace("(",""); _returnstr = _returnstr.replace(")",""); _returnstr = _returnstr.replace("[",""); _returnstr = _returnstr.replace("]",""); _returnstr = _returnstr.replace("{",""); _returnstr = _returnstr.replace("}",""); return _returnstr; } String.prototype.stringToDate = function() { return new Date(this.replace(/-/g, "/")); } //日期格式化 Date.prototype.format = function (fmt) { //author: meizz var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; } /** * 获得某日期所在周为周几的中文名 */ Date.prototype.getWeekCNName = function(arg0, arg1){ return arg1 + "日一二三四五六".charAt(arg0.getDay()); } /** * 获得某日期所在周周日的日期对象 */ Date.prototype.getSundayByDate = function(arg0){ var _t = arg0.getTime() ; var _d = arg0.getDay(); var _dt = 24*60*60*1000 ; return new Date(_t + (7-_d)*_dt); } /** * 获得某日期所在周周一的日期对象 */ Date.prototype.getMondayByDate = function(arg0){ var _t = arg0.getTime(); var _d = arg0.getDay(); var _dt = 24*60*60*1000; return new Date(_t - (_d-1)*_dt); } /** * 获得某年某月中的周对象, * @param year 年份 * @param month 月份 * @returns {Array} 返回一个json结构,结构中包含周一和周日2个日期对象 */ Date.prototype.getWeeksByMonth = function(year, month) { var weeks = new Array(); var d = new Date(); var d1, w1; // what day is first day d.setFullYear(year, month-1, 1); var s = w1 = d.getDay(); if (w1 == 0) w1 = 7; // total day of month d.setFullYear(year, month, 0); var dd = d.getDate(); // first Monday if (w1 != 1) d1 = 7 - w1 + 2; else d1 = 1; if(s !=1){ var cur = new Date(year+"/"+month+"/"+d1); var mon = new Date(cur.getTime()-7*24*60*60*1000); var sun = new Date(mon.getTime()+6*24*60*60*1000); weeks.push({"mon":mon.getFullYear()+"-"+(mon.getMonth()+1)+"-"+mon.getDate(),"sun":sun.getFullYear()+"-"+(sun.getMonth()+1)+"-"+sun.getDate()}) } var week_count = Math.ceil((dd-d1+1)/7); for (var i = 0; i < week_count; i++) { var monday = d1+i*7; var sunday = monday + 6; var from = year+"-"+month+"-"+monday; var to; if (sunday <= dd) { to = year+"-"+month+"-"+sunday; } else { d.setFullYear(year, month-1, sunday); to = d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate(); } weeks.push({"mon":from,"sun":to}); } return weeks; } //字符串格式检测 function SstringCheck(checkrule, checkstr) { //checkrule为3允许包含大小写字母,1允许包含数字,2允许包含中文 var isRule = false; var regLetter = /^[A-Za-z]+$/; var regNum = /^[0-9]+$/; var regChinese = /^[\u0391-\uFFE5]+$/; for (var i = 0; i < checkstr.length; i++) { //将字符串的每个字符逐个进行判断 for (var j = 1; j < checkrule.length; j++) { if (checkrule.substring(j, j + 1) == 3) { if (checkstr.substring(i, i + 1).match(regLetter) == null) { isRule = false; } else { isRule = true; break; } } else if (checkrule.substring(j, j + 1) == 1) { if (checkstr.substring(i, i + 1).match(regNum) == null) { isRule = false; } else { isRule = true; break; } } else if (checkrule.substring(j, j + 1) == 2) { if (checkstr.substring(i, i + 1).match(regChinese) == null) { isRule = false; } else { isRule = true; break; } } else { if (checkrule.substring(j, j + 1) != checkstr.substring(i, i + 1)) { isRule = false; } else { isRule = true; break; } } } //如果发现非法字符,则弹出提示框 // JScript source code if (checkrule.substring(0, 1) == 1) { if (isRule == false) { var str = "字符串只允许包含"; for (var k = 1; k < checkrule.length; k++) { if (checkrule.substring(k, k + 1) == '3') { if (k == checkrule.length - 1) { str = str + "字母"; } else { str = str + "字母、"; } } else if (checkrule.substring(k, k + 1) == '1') { if (k == checkrule.length - 1) { str = str + "数字"; } else { str = str + "数字、"; } } else if (checkrule.substring(k, k + 1) == '2') { if (k == checkrule.length - 1) { str = str + "中文"; } else { str = str + "中文、"; } } else { if (k == checkrule.length - 1) { str = str + checkrule.substring(k, k + 1); } else { str = str + checkrule.substring(k, k + 1) + "、"; } } } //alert(str); return false; } } else if (checkrule.substring(0, 1) == 0) { if (isRule == true) { var str = "字符串不允许包含"; for (var k = 1; k < checkrule.length; k++) { if (checkrule.substring(k, k + 1) == '3') { if (k == checkrule.length - 1) { str = str + "字母"; } else { str = str + "字母、"; } } else if (checkrule.substring(k, k + 1) == '1') { if (k == checkrule.length - 1) { str = str + "数字"; } else { str = str + "数字、"; } } else if (checkrule.substring(k, k + 1) == '2') { if (k == checkrule.length - 1) { str = str + "中文"; } else { str = str + "中文、"; } } else { if (k == checkrule.length - 1) { str = str + checkrule.substring(k, k + 1); } else { str = str + checkrule.substring(k, k + 1) + "��"; } } } //alert(str); return false; } } } return true; } // 获得JS函数名称 function getFunNames(func) { // 先用正则匹配,取得符合参数模式的字符串. // 第一个分组是这个: ([^)]*) 非右括号的任意字符 var args = func.toString().match(/function\s.*?\(([^)]*)\)/)[1]; // 用逗号来分隔参数(arguments string). return args.split(",").map(function(arg) { // 去除注释(inline comments)以及空格 return arg.replace(/\/\*.*\*\//, "").trim(); }).filter(function(arg) { // 确保没有 undefined. return arg; }); }