标签:参数 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; }); }
补充:在正则中使用变量
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