当前位置: 首页 > 科技观察

前端:分享一些有用的JS代码片段

时间:2023-03-21 22:13:57 科技观察

day给大家分享一些有用的JS代码片段,欢迎有需要的朋友收藏!1、获取浏览器版本函数getBrowser(){varUserAgent=navigator.userAgent.toLowerCase();varbrowserInfo={};varbrowserArray={IE:window.ActiveXObject||"ActiveXObject"inwindow,//IEChrome:UserAgent.indexOf('chrome')>-1&&UserAgent.indexOf('safari')>-1,//Chrome浏览器Firefox:UserAgent.indexOf('firefox')>-1,//FirefoxOpera:UserAgent.indexOf('opera')>-1,//OperaSafari:UserAgent.indexOf('safari')>-1&&UserAgent.indexOf('chrome')==-1,//safari浏览器Edge:UserAgent.indexOf('edge')>-1,//边缘浏览器QQBrowser:/qqbrowser/.test(UserAgent),//qq浏览器WeixinBrowser:/MicroMessenger/i.test(UserAgent)//微信浏览器};//console.log(browserArray)for(variinbrowserArray){if(browserArray[i]){varversions='';if(i=='IE'){versions=UserAgent.match(/(msie\s|trident.*rv:)([\w.]+)/)[2];}elseif(i=='Chrome'){for(varmtinnavigator.mimeTypes){//检测是否是360的浏览器(测试只对PC端的360有效)if(navigator.mimeTypes[mt]['type']=='application/360softmgrplugin'){i='360';}}versions=UserAgent.match(/chrome\/([\d.]+)/)[1];}elseif(i=='Firefox'){versions=UserAgent.match(/firefox\/([\d.]+)/)[1];}elseif(i=='Opera'){versions=UserAgent.match(/opera\/([\d.]+)/)[1];}elseif(i=='Safari'){versions=UserAgent.match(/version\/([\d.]+)/)[1];}elseif(i=='Edge'){versions=UserAgent.match(/edge\/([\d.]+)/)[1];}elseif(i=='QQBrowser'){versions=UserAgent.match(/qqbrowser\/([\d.]+)/)[1];}browserInfo.type=i;browserInfo.versions=parseInt(versions);}}returnbrowserInfo;}2、颜色RGB转十六进制函数colorRGBtoHex(color){varrgb=color.split(',');varr=parseInt(rgb[0].split('(')[1]);varg=parseInt(rgb[1]);varb=parseInt(rgb[2].split(')')[0]);varhex="#"+((1<<24)+(r<<16)+(g<<8)+b).toString(16).slice(1);returnhex;}3.禁止右键菜单代码,禁止复制粘贴代码/4.检查日期是否合法functionCheckDateTime(str){varreg=/^(\d+)-(\d{1,2})-(\d{1,2})(\d{1,2}):(\d{1,2}):(\d{1,2})$/;varr=str.match(reg);如果(r==null)返回false;r[2]=r[2]-1;vard=newDate(r[1],r[2],r[3],r[4],r[5],r[6]);if(d.getFullYear()!=r[1])返回假;如果(d.getMonth()!=r[2])返回假;如果(d.getDate()!=r[3])返回假;如果(d.getHours()!=r[4])returnfalse;if(d.getMinutes()!=r[5])returnfalse;if(d.getSeconds()!=r[6])returnfalse;returntrue;}5.将英文字符串首字母大写/***方法一:js字符串切割*@param{*}str*/functionfirstToUpper1(str){returnstr.trim().toLowerCase().replace(str[0],str[0].toUpperCase());}/***方法二:js正则化*@param{*}str*/functionfirstToUpper2(str){returnstr.replace(/\b(\w)(\w*)/g,function($0,$1,$2){return$1.toUpperCase()+$2.toLowerCase();});}/***方法三:js正则化*@param{*}str*/functionfirstToUpper3(str){returnstr.toLowerCase().replace(/(|^)[a-z]/g,(L)=>L.toUpperCase());}6.计算两个日期之间的天数functiongetDays(strDateStart,strDateEnd){varstrSeparator="-";//日期分隔符varoDate1;varoDate2;variDays;oDate1=strDateStart.split(strSeparator);oDate2=strDateEnd.split(strSeparator);varstrDateS=newDate(oDate1[0],oDate1[1]-1,oDate1[2]);varstrDateE=newDate(oDate2[0],oDate2[1]-1,oDate2[2]);iDays=parseInt(Math.abs(strDateS-strDateE)/1000/60/60/24)//毫秒转换到天数returniDays;}7.生成一个随机的十六进制颜色functionrandomHexColor(){//随机生成一个十六进制颜色varhex=Math.floor(Math.random()*16777216).toString(16);//生成一个ffffff内的16进制数while(hex.length<6){//while循环判断16进制位数,不足6位前加0补6位hex='0'+hex;}return'#'+hex;//返回'#'开头的十六进制颜色}8.数组去重constremoveDuplicates=(arr)=>[...newSet(arr)];console.log(removeDuplicates([1,2,3,3,4,4,5,5,6]));//结果:[1,2,3,4,5,6]9.从URL函数中获取查询参数getParameterByName(name,url){if(!url)url=window.location.href;name=name.replace(/[\[\]]/g,"\\$&");varregex=newRegExp("[?&]"+name+"(=([^&#]*)|&|#|$)"),results=regex.exec(url);if(!results)returnnull;if(!results[2])return'';returndecodeURIComponent(results[2].replace(/\+/g,""));}10.校验位是奇数还是偶数constisEven=num=>num%2===0;console.log(isEven(2));//结果:True11,求数字的平均值constaverage=(...args)=>args.reduce((a,b)=>a+b)/args.length;average(1,2,3,4);//Result:2.512,返回顶部functiontopFunction(){document.body.scrollTop=0;document.documentElement.scrollTop=0;}13,反转字符串//reversevarname="MycityisWH";varresultStr=name.split('').reverse().join('');console.log(resultStr);//HWsiyticyM//charAtvarname="MycityisWuHan";varnameArr=name.split('');varresultStr='';for(vari=nameArr.length-1;i>=0;i--){resultStr+=name.charAt(i);}console.log(resultStr);//naHuWsiyticyM14,检查数组是否为空constisNotEmpty=arr=>Array.isArray(arr)&&arr.length>0;isNotEmpty([1,2,3]);//结果为真