今天给大家分享一些实用的JS代码片段,有需要的朋友欢迎收藏!
1、获取浏览器的版
- functiongetBrowser(){
- varUserAgent=navigator.userAgent.toLowerCase();
- varbrowserInfo={};
- varbrowserArray={
- IE:window.ActiveXObject||"ActiveXObject"inwindow,//IE
- Chrome:UserAgent.indexOf('chrome')>-1&&UserAgent.indexOf('safari')>-1,//Chrome浏览器
- Firefox:UserAgent.indexOf('firefox')>-1,//火狐浏览器
- Opera:UserAgent.indexOf('opera')>-1,//Opera浏览器
- Safari:UserAgent.indexOf('safari')>-1&&UserAgent.indexOf('chrome')==-1,//safari浏览器
- Edge:UserAgent.indexOf('edge')>-1,//Edge浏览器
- 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转十六进制
- functioncolorRGBtoHex(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、禁止右键菜单代码、禁止复制粘贴代码
-
"text/javascript"> - //屏蔽右键菜单
- document.oncontextmenu=function(event){
- if(window.event){
- event=window.event;
- }
- try{
- varthe=event.srcElement;
- if(!((the.tagName=="INPUT"&&the.type.toLowerCase()=="text")||the.tagName=="TEXTAREA")){
- returnfalse;
- }
- returntrue;
- }catch(e){
- returnfalse;
- }
- }
- //屏蔽粘贴
- document.onpaste=function(event){
- if(window.event){
- event=window.event;
- }
- try{
- varthe=event.srcElement;
- if(!((the.tagName=="INPUT"&&the.type.toLowerCase()=="text")||the.tagName=="TEXTAREA")){
- returnfalse;
- }
- returntrue;
- }catch(e){
- returnfalse;
- }
- }
- //屏蔽复制
- document.oncopy=function(event){
- if(window.event){
- event=window.event;
- }
- try{
- varthe=event.srcElement;
- if(!((the.tagName=="INPUT"&&the.type.toLowerCase()=="text")||the.tagName=="TEXTAREA")){
- returnfalse;
- }
- returntrue;
- }catch(e){
- returnfalse;
- }
- }
- //屏蔽剪切
- document.oncut=function(event){
- if(window.event){
- event=window.event;
- }
- try{
- varthe=event.srcElement;
- if(!((the.tagName=="INPUT"&&the.type.toLowerCase()=="text")||the.tagName=="TEXTAREA")){
- returnfalse;
- }
- returntrue;
- }catch(e){
- returnfalse;
- }
- }
- //屏蔽选中
- document.onselectstart=function(event){
- if(window.event){
- event=window.event;
- }
- try{
- varthe=event.srcElement;
- if(!((the.tagName=="INPUT"&&the.type.toLowerCase()=="text")||the.tagName=="TEXTAREA")){
- returnfalse;
- }
- returntrue;
- }catch(e){
- returnfalse;
- }
- } /
4、检查日期是否合法
- functionCheckDateTime(str){
- varreg=/^(\d+)-(\d{1,2})-(\d{1,2})(\d{1,2}):(\d{1,2}):(\d{1,2})$/;
- varr=str.match(reg);
- if(r==null)returnfalse;
- r[2]=r[2]-1;
- vard=newDate(r[1],r[2],r[3],r[4],r[5],r[6]);
- if(d.getFullYear()!=r[1])returnfalse;
- if(d.getMonth()!=r[2])returnfalse;
- if(d.getDate()!=r[3])returnfalse;
- if(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、计算2个日期之间相差多少天
- 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循环判断hex位数,少于6位前面加0凑够6位hex='0'+hex;}
- return'#'+hex;//返回‘#'开头16进制颜色
- }
8、数组去重
- constremoveDuplicates=(arr)=>[...newSet(arr)];
- console.log(removeDuplicates([1,2,3,3,4,4,5,5,6]));
- //Result:[1,2,3,4,5,6]
9、从 URL 获取查询参数
- functiongetParameterByName(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));
- //Result:True
11、求数字的平均值
- constaverage=(...args)=>args.reduce((a,b)=>a+b)/args.length;
- average(1,2,3,4);
- //Result:2.5
12、回到顶部
- functiontopFunction(){
- document.body.scrollTop=0;
- document.documentElement.scrollTop=0;
- }
13、翻转字符串
- //reverse
- varname="MycityisWH";
- varresultStr=name.split('').reverse().join('');
- console.log(resultStr);//HWsiyticyM//charAt
- varname="MycityisWuHan";
- varnameArr=name.split('');
- varresultStr='';
- for(vari=nameArr.length-1;i>=0;i--){
- resultStr+=name.charAt(i);
- }
- console.log(resultStr);//naHuWsiyticyM
14、校验数组是否为空
- constisNotEmpty=arr=>Array.isArray(arr)&&arr.length>0;
- isNotEmpty([1,2,3]);
- //Result:true
原文链接:https://mp.weixin.qq.com/s/xyuYoGz-iRbfo6FnfOyYUA