码迷,mamicode.com
首页 > 其他好文 > 详细

常用函数总结

时间:2017-08-25 14:56:18      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:参数   move   验证   支持   tostring   根据   prototype   version   数字   

1.数组(arr)和对象(json)的深拷贝

使用方法

var arr = [1, 3, 5, {a: 5}]
var newArr =cloneObject(arr,true);
newArr[3].a = 9
console.log(arr, newArr)


//判断是否为数组
1.   Object.prototype.toString.call(obj) === ‘[object Array]‘
2.   obj.constructor === Array


源码:
function cloneObject( obj, deep ){
   if ( obj === null || obj === undefined || typeof (obj) !== ‘object‘ ){
      return obj;
   }
   var deep = !!deep;
   var cloned = null;
   if ( obj.constructor === Array ){//Object.prototype.toString.call(obj) === ‘[object Array]‘
      if ( deep === false ) return obj;
      cloned = [];
      for ( var i in obj ){
         cloned.push( cloneObject( obj[i], deep ) );
      }
      return cloned;
   }
   cloned = {};
   for ( var i in obj ){
      cloned[i] = deep ? cloneObject( obj[i], true ) : obj[i];
    }
    return cloned;
}

2.localStorsge存储的封装

使用方法:

storage.set(‘datura_lj‘,‘666‘);
alert(storage.get(‘datura_lj‘));
storage.del(‘datura_lj‘);
源码:
var storage = {
     isLocalStorage: !!window.localStorage,
     set: function (key, value) { //设置缓存
              if (this.isLocalStorage) {//判断浏览器是否支持storage
                    window.localStorage.setItem(key, value);
               } else {
                    var expireDays = 365; //失效时间
                    var exDate = new Date();
                    exDate.setTime(exDate.getTime() + expireDays * 24 * 60 * 60 * 1000);
                    document.cookie = key + "=" + escape(value) + ";expires=" + exDate.toGMTString();
               }
            },
     get: function (key) { //读取缓存
                if (this.isLocalStorage) {
                    return window.localStorage.getItem(key);
                } else {
                    var arr, reg = new RegExp("(^| )" + key + "=([^;]*)(;|$)");
                    if (arr = document.cookie.match(reg)) {
                        return unescape(arr[2]);
                    } else {
                        return null;//如果查找不到返回null
                    }
                }
            },
      del: function (key) { //删除缓存
                if (this.isLocalStorage) {
                    localStorage.removeItem(key);
                } else {
                    var exDate = new Date();
                    exDate.setTime(exDate.getTime() - 1);
                    var read_val = this.read(key);
                    if (read_val != null) document.cookie = key + "=" + read_val + ";expires=" + exDate.toGMTString();
                }
            }
};

3.时间格式转换

使用方法:

var str = ‘2017-08-07‘;
alert(timeFormatConversion({str:str,link:‘.‘,content:‘-‘}));//2017.8.7
//str为要转换的时间格式,link为要以“神马东西”连接,content原来是“用啥”连接的

源码:
function timeFormatConversion(oldTimeFormat){
   var reg = new RegExp(‘(\\d+)(‘+ oldTimeFormat.content +‘)‘,‘g‘);
   return (oldTimeFormat.str).replace(reg,function($0,$1,$2){
            //第一个参数:$0(匹配成功后的整体结果:2017- ,08-);
            //第二个参数:$1(匹配成功的第一个分组,这里指的是“\d”:2017,08);
            //第三个参数:$2(匹配成功的第二个分组,这里指的是“-”:- , -)
             return $1 + oldTimeFormat.link;
          });
}
补充:在正则中使用变量
//方法一:使用eval var regk = "/(\\d+)("+ bbb +")/g"; ar reg = eval(regk); //方法二:使用new RegExp(); 推荐 var reg = new RegExp(‘(\\d+)(‘+ bbb +‘)‘,‘g‘);
 

4.敏感词过滤

使用方法:

var str2 = "我爱北京天安门, 天安门上太阳升, 伟大领袖毛主席, 指引我们向前进."
document.write(sensitiveWords({str:str2,words:[‘我‘,‘北京‘,‘天安门‘]}));
//str后面是元字符串,words后面是一个数组把要屏蔽的关键字写入。
//注:默认是一个字替换一个*

源码:
function sensitiveWords(sensitive){
    var regWords = ‘‘;
    var wordsLength = (sensitive.words).length;//2
    for(var i=0;i<wordsLength;i++){
        if(i == (wordsLength-1)){
            regWords += (sensitive.words)[i];
        }else {
            regWords += (sensitive.words[i]) + ‘|‘;
        }
    }
    var reg = new RegExp(regWords,‘g‘);
    return (sensitive.str).replace(reg,function(str){
         var result = ‘‘;
        for(var i=0;i<str.length;i++){
            result += ‘*‘;
        }
        return result ;
    });
};

5.时间戳转成日期对象

简述

toLocaleString() 方法可根据本地时间把 Date 对象转换为字符串,并返回结果。

replace(/:\d{1,2}$/,‘ ‘)验证替换以:开始有一位或二位数字的结束字符串,就是秒;替换为空

使用方法:
alert(getLocalTime(1502166609)); //2017-8-8 12:30  单位是秒

源码:
// 单位是秒,传入的时间戳是“秒”数
function getLocalTime(S) {     
   return new Date(parseInt(S) * 1000).toLocaleString().replace(/:\d{1,2}$/,‘ ‘);     
}

 

常用函数总结

标签:参数   move   验证   支持   tostring   根据   prototype   version   数字   

原文地址:http://www.cnblogs.com/xlljay/p/7427803.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!