pulic——function(下载的公共的)
1.
/* * 用途: 对Date的扩展,将 Date 转化为指定格式的String */
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 // (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 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; } //使用方法 var now = new Date(); var nowStr = now.format("yyyy-MM-dd hh:mm:ss"); //使用方法2: var testDate = new Date(); var testStr = testDate.format("YYYY年MM月dd日hh小时mm分ss秒"); alert(testStr); //示例: alert(new Date().format("yyyy年MM月dd日")); alert(new Date().format("MM/dd/yyyy")); alert(new Date().format("yyyyMMdd")); alert(new Date().format("yyyy-MM-dd hh:mm:ss")); /* * 数组去除重复项 */ Array.prototype.unique5 = function() { var res = [], hash = {}; for ( var i = 0, elem; (elem = this[i]) != null; i++) { if (!hash[elem]) { res.push(elem); hash[elem] = true; } } return res; }; /* * 用途:去除左右空格 */ String.prototype.Trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); };
/* *读取文件的前后缀名 */ String.prototype.startWith=function(str){ var reg=new RegExp("^"+str); return reg.test(this); } String.prototype.endWith=function(str){ var reg=new RegExp(str+"$"); return reg.test(this); } eg: var str=config.mou; console.log(str.endWith=='.mou');//true
/* *获取url中的参数 */ function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r != null) return unescape(r[2]); return null; //返回参数值 } //调用 var sDate=!!getUrlParam("date")?getUrlParam("date"):'';
/** * @desc 根据公式获取code * @param {string} str 公式字符串 * @return {array} _arr code组成的数组 */ function formulaToCode(str){ var _arr=str.match(/\[.+?\]/g).join('').replace(/\]/g,'').split(/\[/); _arr.shift(); return _arr; } /** * @desc 把请求到的单个code分散数据重新组合成按照公式的数据。 * @param {Object} obj 用 “公式:设备对象”组成的对象。 * @param {Array} res 请求回来的数据数组对象,如:res.jsonList * @return {Array} resArr 数据数组对象 */ function evalFormulaToRes(obj,res,other){ other=other===undefined?['sname','data']:other; var resArr=[];//用于存放返回的数据对象 if(res.length==0){return resArr;}//没有数据 //1.解析res数组生成_tempO和_tempA for(var i=0,_tempO={},_tempA={};i<res.length;i++){ if(_tempO[res[i].sname]===undefined){ _tempO[res[i].sname]={}; _tempA[res[i].sname]=[]; } var keys=''; for(var k in res[i]){ if(other.indexOf(k)===-1){ keys+=''+res[i][k]; } } if(keys===''){keys='tempIndex'+i} _tempO[res[i].sname][keys]=res[i]; _tempA[res[i].sname].push(res[i]); } //2.外层循环每个公式 for(var k in obj){ if(k.split(/[\[\+\-\*\/]/g).length<3){//2.1.如果公式是单个code,不存在运算直接concat进resArr var key=k.replace(/\[|\]/g,''); if(_tempA[k]!==undefined){ resArr=resArr.concat(_tempA[k]); }else if(_tempA[key]!==undefined){ resArr=resArr.concat(_tempA[key]); } }else{//2.2.公式存在运算 //2.2.1.取出每个code var _arr=formulaToCode(k); //2.2.2.根据每个code找出数据对象,把找到的数据对象的所有属性tempResArr if(_arr.length>1){ for(var i=0,tempResArr={},len=0;i<_arr.length;i++){ if(_tempO[_arr[i]]!==undefined){ for(var n in _tempO[_arr[i]]){ tempResArr[n]=_tempO[_arr[i]][n]; } } } } console.log(tempResArr) //2.2.3.循环tempResArr找出里面,每个属性生成变量 for(var ks in tempResArr){ var to=JSON.parse(JSON.stringify(tempResArr[ks])) to.sname=k;to.data=formulaToData(_arr,_tempO,k,ks); if(isNaN(to.data)||to.data==Infinity){ console.error('错误:"'+k+'"数据除以0'); to.data=0; } resArr.push(to); } } } return resArr; } /** * @desc 将公式转换为数据 * @param {*} _arr * @param {*} _tempO * @param {*} k * @param {*} ks */ function formulaToData(_arr,_tempO,k,ks){ for(var i=0;i<_arr.length;i++){ var _str=''; if(_tempO[_arr[i]]===undefined){//没有code _str='var '+_arr[i]+'='+0; }else{ var _to=_tempO[_arr[i]][ks];//有code没有某个属性 if(_to===undefined){ _str='var '+_arr[i]+'='+0; }else{ _str='var '+_arr[i]+'='+_to.data; } } eval(_str); } return eval('('+k.replace(/\[|\]/g,'')+')')+''; }
/** * @desc 替换所有的js方法 */ String.prototype.replaceAll = stringReplaceAll; function stringReplaceAll(AFindText,ARepText){ var raRegExp = new RegExp(AFindText.replace(/([\(\)\[\]\{\}\^\$\+\-\*\?\.\"\'\|\/\\])/g,"\\$1"),"ig"); return this.replace(raRegExp,ARepText); }