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);
}
pulic——function(下载的公共的)的更多相关文章
- 人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载
人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载 ImageNet挑战赛中超越人类的计算机视觉系统微软亚洲研究院视觉计算组基于深度卷积神经网络(CNN)的计 ...
- Javascript使用function创建类的两种方法
1.使用function类 //myFunction.js var CMyFunc=function() { //类的公共方法,供外部调用 this.Func1=function() { var i= ...
- 去除下载电影和电视剧文件名中的多余字符[python实现]
讨厌下载电影和电视剧文件名中的多余字符(如网址和广告字样),,搞得文件名好长,可以使用下面的Python代码,自行修改即可. #!\usr\bin\env python # -*- coding: u ...
- Thinkphp3.2.3框架下封装公共的函数,例如封装CURL函数来获取接口数据
当我们需要在控制层调用相同的封装函数时,写多次相同的函数,显得代码十分的拉杂,不精简: TP框架有一个很好的机制,可以再Common定义一个function.php函数,当我们在控制层调用的时候直接调 ...
- nodejs之SVG转图片下载方案
本文介绍在nodejs基础上.怎样实现将svg转为png并下载的功能. 所需Webkit和node module简单介绍: phantomjs:一个基于WebKit的server端JavaScript ...
- ajax axios 下载文件时如何获取进度条 process
最近项目需要做一个下载文件的进度条,看网上上传文件进度条下载,特分享出来方便大家查阅 <!DOCTYPE html> <html> <head> <m ...
- 痞子衡嵌入式:RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计
大家好,我是痞子衡,是正经搞技术的痞子.今天给大家带来的是痞子衡的开源项目 RT-UFL. 痞子衡在近两年多的i.MXRT客户项目支持过程中,遇到的一个相当高频的问题就是制作i.MXRT下载算法.我们 ...
- php导出excel封装类
因为实际情况的需要,导出excel表格在后台开发的过程中会经常用到.下面是我在实际应用中自己整理的一个导出excel类,需要PHPExcel支持,本类很好的完成导出表格的基本样式,保存路径,切换工作薄 ...
- 【原创】ui.router源码解析
Angular系列文章之angular路由 路由(route),几乎所有的MVC(VM)框架都应该具有的特性,因为它是前端构建单页面应用(SPA)必不可少的组成部分. 那么,对于angular而言,它 ...
随机推荐
- LSI SAS3IRCU配置SAS3系列RAID卡
LSI SAS3IRCU配置SAS3系列RAID卡 一.适用的controller LSISAS3008 LSISAS3004 二.名词解释 Controller: IR: Volume: 卷,基于物 ...
- My97DatePicker常用日期格式
WdatePicker({ minDate: '%y-%M-%d', maxDate: '#F{$dp.$D(\'GradeEndDate\',{d:-1});}' }); WdatePicker({ ...
- HTML4.0 需要掌握的主要内容
常用标签: <html></html> 创建一个HTML文档 <head></head> 设置文档标题和其它在网页中不显示的信息 <title&g ...
- [转]解读Unity中的CG编写Shader系列1——初识CG
CG=C for Graphics 用于计算机图形编程的C语言超集 前提知识点: 1.CG代码必须用 CGPROGRAM ... ENDCG括起来 2.顶点着色器与片段着色器的主函数名称可随意,但需 ...
- storm集群快速搭建
sudo mkdir /export/serverssudo chmod -R 777 /exportmkdir /export/servers tar -zxvf apache-storm-1.0. ...
- 苹果开发者账号提示“Unable to verify mobile phone number”的解决方案
在注册苹果开发者账号时,会提示:"Unable to verify mobile phone number.".顾名思义,没有有效的手机号码. 解决方案: 进入到Your Appl ...
- 从程序员的角度深入理解MySQL
前言 今天我将站在程序员的角度以MySQL为例探索数据库的奥秘! 数据库基本原理 我对DB的理解 1.数据库的组成:存储 + 实例 不必多说,数据当然需要存储:存储了还不够,显然需要提供程序对存储 ...
- php代码审计4审计代码执行漏洞
代码执行漏洞代码执行漏洞是指应用程序本身过滤不严,用户可以通过请求将代码注入到应用中执行,当应用在调用一些能将字符串转化成代码的函数(如php中的eval)时,没有考虑到用户是否能控制这个字符串,造成 ...
- 190411Python面向对象编程
一.面向对象的概念 类:把一类事物的相同特征抽取出来整合到一起就是一个类,类是一个抽象的概念 对象:基于类创建的一个具体的事物 class People(object): '这是一个人类的类' def ...
- ThinkCMF if 标签
用法示例: <if condition="($name eq 1) OR ($name gt 100) "> value1 <elseif condition=& ...