项目js函数大全
1.获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS”
function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var seperator2 = ":"; var month = date.getMonth() + 1; var strDate = date.getDate(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate + " " + date.getHours() + seperator2 + date.getMinutes() + seperator2 + date.getSeconds(); return currentdate; }
2.jQuery表单序列化对象
$.fn.serializeObject = function () { var obj = {}; var count = 0; $.each(this.serializeArray(), function (i, o) { var n = o.name, v = o.value; count++; obj[n] = obj[n] === undefined ? v : $.isArray(obj[n]) ? obj[n].concat(v) : [obj[n], v]; }); //obj.nameCounts = count + "";//表单name个数 return JSON.stringify(obj); }; 调用示例:var serStr = $('#form1').serializeObject();
3.Js判断回文字符串
function palindrome(str){ // \W匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。 var re = /[\W_]/g; // 将字符串变成小写字符,并干掉除字母数字外的字符 var lowRegStr = str.toLowerCase().replace(re,''); // 如果字符串lowRegStr的length长度为0时,字符串即是palindrome if(lowRegStr.length===0) return true; // 如果字符串的第一个和最后一个字符不相同,那么字符串就不是palindrome if(lowRegStr[0]!=lowRegStr[lowRegStr.length-1]) return false; //递归 return palindrome(lowRegStr.slice(1,lowRegStr.length-1)); }
4.ES6函数组合
const pipe = (...fns) => x => fns.reduce((v, f) => f(v), x); const fn1 = s => s.toLowerCase(); const fn2 = s => s.split('').reverse().join(''); const fn3 = s => s + '!' const newFunc = pipe(fn1, fn2, fn3); const result = newFunc('Time'); // emit!
5.jquery插件编写
$.fn.extend = { "alterBgColor": function(options){ options = $extend({ odd:'odd', even:'even', selected:'selected' },option); $('tbody>tr:odd',this).addClass(options.odd); $('tbody>tr:even',this).addClass(options.even); $('tbody>tr',this).click(function(){ var hasSelected = $(this).hasClass(options.selected)?true;flase;
$(this)[hasSelected?'removeClass':'addClass'](options.selected);
$(this).find('checkbox').attr('checked',!$(this).attr('checked'))
})
}
}
//table隔行变色插件
6. 图片上传常用函数
<script> //输出选中的文件列表相关的信息 function fileinfo(files) { for(var i = 0; i < files.length; i++) {//files是一个类数组对象 var f = files[i]; //a.txt 86 text/plain Mon Sep 19 2016 11:07:43 GMT+0800 (中国标准时间) console.log(f.name, //只是名字:没有路径 f.size, f.type, //size和type是Blob的属性 f.lastModifiedDate); //修改时间 } } </script> <input type="file" onchange="fileinfo(this.files)"/> function showPreview(source) { var file = source.files[0]; console.log(file.type+'---'+file.size); console.log(source.value); if(window.FileReader) { var fr = new FileReader(); fr.onload = function(e) { var image = new Image(); image.src= e.target.result; console.log(e.target.result); //base64格式的图片路径 console.log(image.width+'---'+image.height); if(image.width>900){ alert('照片太宽'); return } document.getElementById("portrait").src = e.target.result; }; fr.readAsDataURL(file); } }
7.非常简单的获取url参数函数
function getUrlParam(sUrl,sKey){ var result = {}; sUrl.replace(/\??(\w+)=(\w+)&?/g,function(a,k,v){ if(result[k] !== void 0){ var t = result[k]; result[k] = [].concat(t,v); }else{ result[k] = v; } }); if(sKey === void 0){ return result; }else{ return result[sKey] || ''; } } getUrlParam('http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe', 'key') //输出 [1, 2, 3]
好久没更新了,主要是公司项目太tm赶了,老板催着折腾,来的2个总监都是走管理路线的,没有一点技术支撑,还要我们往死里干,已经辞了几个人,也逼走了几个人,我估计也快gg了,行了,就这么多吧,下回再出来分享.