项目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了,行了,就这么多吧,下回再出来分享.

 

 

posted @ 2017-03-15 17:17  coder_231  阅读(292)  评论(0编辑  收藏  举报