constgetUrlParam=function(name){// 获取url参数let reg =newRegExp('(^|&?)'+ name +'=([^&]*)(&|$)','i')let r = window.location.href.substr(1).match(reg)if(r !=null){returndecodeURI(r[2])}returnundefined}
3.本地存储
const store ={// 本地存储set:function(name, value, day){// 设置let d =newDate()let time =0
day =(typeof(day)==='undefined'||!day)?1: day // 时间,默认存储1天
time = d.setHours(d.getHours()+(24* day))// 毫秒
localStorage.setItem(name,JSON.stringify({data: value,time: time
}))},get:function(name){// 获取let data = localStorage.getItem(name)if(!data){returnnull}let obj =JSON.parse(data)if(newDate().getTime()> obj.time){// 过期
localStorage.removeItem(name)returnnull}else{return obj.data
}},clear:function(name){// 清空if(name){// 删除键为name的缓存
localStorage.removeItem(name)}else{// 清空全部
localStorage.clear()}}}
4.cookie操作【set,get,del】
const cookie ={set:function(name, value, day){let oDate =newDate()
oDate.setDate(oDate.getDate()+(day ||30))
document.cookie = name +'='+ value +';expires='+ oDate +"; path=/;"},get:function(name){let str = document.cookie
let arr = str.split('; ')for(let i =0; i < arr.length; i++){let newArr = arr[i].split('=')if(newArr[0]=== name){return newArr[1]}}},del:function(name){this.set(name,'',-1)}}
constisDevice=function(){// 判断是android还是ios还是webvar ua = navigator.userAgent.toLowerCase()if(ua.match(/iPhone\sOS/i)==='iphone os'|| ua.match(/iPad/i)==='ipad'){// iosreturn'iOS'}if(ua.match(/Android/i)==='android'){return'Android'}return'Web'}
10.判断是否为微信
constisWx=function(){// 判断是否为微信var ua = window.navigator.userAgent.toLowerCase()if(ua.match(/MicroMessenger/i)==='micromessenger'){returntrue}returnfalse}
11.文本复制功能
constcopyTxt=function(text, fn){// 复制功能if(typeof document.execCommand !=='function'){
console.log('复制失败,请长按复制')return}var dom = document.createElement('textarea')
dom.value = text
dom.setAttribute('style','display: block;width: 1px;height: 1px;')
document.body.appendChild(dom)
dom.select()var result = document.execCommand('copy')
document.body.removeChild(dom)if(result){
console.log('复制成功')typeof fn ==='function'&&fn()return}if(typeof document.createRange !=='function'){
console.log('复制失败,请长按复制')return}var range = document.createRange()var div = document.createElement('div')
div.innerhtml = text
div.setAttribute('style','height: 1px;fontSize: 1px;overflow: hidden;')
document.body.appendChild(div)
range.selectNode(div)var selection = window.getSelection()
console.log(selection)if(selection.rangeCount >0){
selection.removeAllRanges()}
selection.addRange(range)
document.execCommand('copy')typeof fn ==='function'&&fn()
console.log('复制成功')}
constisPC=function(){// 是否为PC端let userAgentInfo = navigator.userAgent
let Agents =['Android','iPhone','SymbianOS','Windows Phone','iPad','iPod']let flag =truefor(let v =0; v < Agents.length; v++){if(userAgentInfo.indexOf(Agents[v])>0){
flag =falsebreak}}return flag
}
17.去除字符串空格
consttrim=function(str, type){// 去除空格, type: 1-所有空格 2-前后空格 3-前空格 4-后空格
type = type ||1switch(type){case1:return str.replace(/\s+/g,'')case2:return str.replace(/(^\s*)|(\s*$)/g,'')case3:return str.replace(/(^\s*)/g,'')case4:return str.replace(/(\s*$)/g,'')default:return str
}}
constnumberToChinese=function(num){letAA=newArray('零','一','二','三','四','五','六','七','八','九','十')letBB=newArray('','十','百','千','万','亿','点','')let a =(''+num).replace(/(^0*)/g,'').split('.')let k =0let re =''for(let i = a[0].length-1;i >=0;i--){switch(k){case0:
re =BB[7]+ re
breakcase4:if(!newRegExp('0{4}//d{'+(a[0].length - i -1)+'}$').test(a[0])){
re =BB[4]+ re
}breakcase8:
re =BB[5]+ re
BB[7]=BB[5]
k =0break}if(k %4===2&& a[0].charAt(i +2)!==0&& a[0].charAt(i +1)===0){
re =AA[0]+ re
}if(a[0].charAt(i)!==0){
re =AA[a[0].charAt(i)]+BB[k %4]+ re
}
k++}if(a.length >1){// 加上小数部分(如果有小数部分)
re +=BB[6]for(let i =0; i < a[1].length; i++){
re +=AA[a[1].charAt(i)]}}if(re ==='一十'){
re ='十'}if(re.match(/^一/)&& re.length ===3){
re = re.replace('一','')}return re
}// console.log(numberToChinese(145.3)) // 一百四十五点三
22.原生dom操作
const dom ={$:function(selector){let type = selector.substring(0,1)if(type ==='#'){if(document.querySelector)return document.querySelector(selector)return document.getElementById(selector.substring(1))}elseif(type ==='.'){if(document.querySelecotorAll)return document.querySelectorAll(selector)return document.getElementsByClassName(selector.substring(1))}else{return document['querySelectorAll'?'querySelectorAll':'getElementsByTagName'](selector)}},hasClass:function(ele,name){/* 检测类名 */return ele.className.match(newRegExp('(\\s|^)'+ name +'(\\s|$)'))},addClass:function(ele, name){/* 添加类名 */if(!this.hasClass(ele, name)) ele.className +=' '+ name
},removeClass:function(ele, name){/* 删除类名 */if(this.hasClass(ele, name)){let reg =newRegExp('(\\s|^)'+ name +'(\\s|$)')
ele.className = ele.className.replace(reg,'')}},replaceClass:function(ele, newName, oldName){/* 替换类名 */this.removeClass(ele, oldName)this.addClass(ele, newName)},siblings:function(ele){/* 获取兄弟节点 */
console.log(ele.parentNode)let chid = ele.parentNode.children,
eleMatch =[]for(let i =0, len = chid.length; i < len; i++){if(chid[i]!== ele){
eleMatch.push(chid[i])}}return eleMatch
},getByStyle:function(obj, name){/* 获取行间样式属性 */if(obj.currentStyle){return obj.currentStyle[name]}else{returngetComputedStyle(obj,false)[name]}},domToStirng:function(htmlDOM){/* DOM转字符串 */var div = document.createElement('div')
div.appendChild(htmlDOM)return div.innerHTML
},stringToDom:function(htmlString){/* 字符串转DOM */var div = document.createElement('div')
div.innerHTML = htmlString
return div.children[0]}}
conststringfyQueryString=function(obj){//对象序列化【对象转url参数】if(!obj)return'';let pairs =[];for(let key in obj){let value = obj[key];if(value instanceofArray){for(let i =0; i < value.length;++i){
pairs.push(encodeURIComponent(key +'['+ i +']')+'='+encodeURIComponent(value[i]));}continue;}
pairs.push(encodeURIComponent(key)+'='+encodeURIComponent(obj[key]));}return pairs.join('&');}