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

开发 前端
JavaScript是世界上最流行的脚本语言,因为你在电脑、手机、平板上浏览的所有的网页,以及无数基于HTML5的手机App,交互逻辑都是由JavaScript驱动的。

天给大家分享一些实用的JS代码片段,有需要的朋友欢迎收藏!

[[432241]]

1、获取浏览器的版

  1. function getBrowser() { 
  2.     var UserAgent = navigator.userAgent.toLowerCase(); 
  3.     var browserInfo = {}; 
  4.     var browserArray = { 
  5.         IE: window.ActiveXObject || "ActiveXObject" in window, // IE 
  6.         Chrome: UserAgent.indexOf('chrome') > -1 && UserAgent.indexOf('safari') > -1, // Chrome浏览器 
  7.         Firefox: UserAgent.indexOf('firefox') > -1, // 火狐浏览器 
  8.         Opera: UserAgent.indexOf('opera') > -1, // Opera浏览器 
  9.         Safari: UserAgent.indexOf('safari') > -1 && UserAgent.indexOf('chrome') == -1, // safari浏览器 
  10.         Edge: UserAgent.indexOf('edge') > -1, // Edge浏览器 
  11.         QQBrowser: /qqbrowser/.test(UserAgent), // qq浏览器 
  12.         WeixinBrowser: /MicroMessenger/i.test(UserAgent) // 微信浏览器 
  13.     }; 
  14.     // console.log(browserArray) 
  15.     for (var i in browserArray) { 
  16.         if (browserArray[i]) { 
  17.             var versions = ''
  18.             if (i == 'IE') { 
  19.                 versions = UserAgent.match(/(msie\s|trident.*rv:)([\w.]+)/)[2]; 
  20.             } else if (i == 'Chrome') { 
  21.                 for (var mt in navigator.mimeTypes) { 
  22.                     //检测是否是360浏览器(测试只有pc端的360才起作用) 
  23.                     if (navigator.mimeTypes[mt]['type'] == 'application/360softmgrplugin') { 
  24.                         i = '360'
  25.                     } 
  26.                 } 
  27.                 versions = UserAgent.match(/chrome\/([\d.]+)/)[1]; 
  28.             } else if (i == 'Firefox') { 
  29.                 versions = UserAgent.match(/firefox\/([\d.]+)/)[1]; 
  30.             } else if (i == 'Opera') { 
  31.                 versions = UserAgent.match(/opera\/([\d.]+)/)[1]; 
  32.             } else if (i == 'Safari') { 
  33.                 versions = UserAgent.match(/version\/([\d.]+)/)[1]; 
  34.             } else if (i == 'Edge') { 
  35.                 versions = UserAgent.match(/edge\/([\d.]+)/)[1]; 
  36.             } else if (i == 'QQBrowser') { 
  37.                 versions = UserAgent.match(/qqbrowser\/([\d.]+)/)[1]; 
  38.             } 
  39.             browserInfo.type = i; 
  40.             browserInfo.versions = parseInt(versions); 
  41.         } 
  42.     } 
  43.     return browserInfo; 

2、颜色RGB转十六进制

  1. function colorRGBtoHex(color) { 
  2.     var rgb = color.split(','); 
  3.     var r = parseInt(rgb[0].split('(')[1]); 
  4.     var g = parseInt(rgb[1]); 
  5.     var b = parseInt(rgb[2].split(')')[0]); 
  6.     var hex = "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); 
  7.     return hex; 

3、禁止右键菜单代码、禁止复制粘贴代码

  1. < script type = "text/javascript" > 
  2. //屏蔽右键菜单 
  3. document.oncontextmenu = function(event) { 
  4.   if (window.event) { 
  5.     event = window.event; 
  6.   } 
  7.   try { 
  8.     var the = event.srcElement; 
  9.     if (! ((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) { 
  10.       return false
  11.     } 
  12.     return true
  13.   } catch(e) { 
  14.     return false
  15.   } 
  16. //屏蔽粘贴 
  17. document.onpaste = function(event) { 
  18.   if (window.event) { 
  19.     event = window.event; 
  20.   } 
  21.   try { 
  22.     var the = event.srcElement; 
  23.     if (! ((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) { 
  24.       return false
  25.     } 
  26.     return true
  27.   } catch(e) { 
  28.     return false
  29.   } 
  30. //屏蔽复制 
  31. document.oncopy = function(event) { 
  32.   if (window.event) { 
  33.     event = window.event; 
  34.   } 
  35.   try { 
  36.     var the = event.srcElement; 
  37.     if (! ((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) { 
  38.       return false
  39.     } 
  40.     return true
  41.   } catch(e) { 
  42.     return false
  43.   } 
  44. //屏蔽剪切 
  45. document.oncut = function(event) { 
  46.   if (window.event) { 
  47.     event = window.event; 
  48.   } 
  49.   try { 
  50.     var the = event.srcElement; 
  51.     if (! ((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) { 
  52.       return false
  53.     } 
  54.     return true
  55.   } catch(e) { 
  56.     return false
  57.   } 
  58. //屏蔽选中 
  59. document.onselectstart = function(event) { 
  60.   if (window.event) { 
  61.     event = window.event; 
  62.   } 
  63.   try { 
  64.     var the = event.srcElement; 
  65.     if (! ((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) { 
  66.       return false
  67.     } 
  68.     return true
  69.   } catch(e) { 
  70.     return false
  71.   } 
  72. } < /script>/ 

4、检查日期是否合法

  1. function CheckDateTime(str){ 
  2. var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
  3. var r = str.match(reg); 
  4. if(r==null)return false
  5. r[2]=r[2]-1; 
  6. var d= new Date(r[1], r[2],r[3], r[4],r[5], r[6]); 
  7. if(d.getFullYear()!=r[1])return false
  8. if(d.getMonth()!=r[2])return false
  9. if(d.getDate()!=r[3])return false
  10. if(d.getHours()!=r[4])return false
  11. if(d.getMinutes()!=r[5])return false
  12. if(d.getSeconds()!=r[6])return false
  13. return true

5、英文字符串首字母大写

  1. /** 
  2.  * 方法一:js字符串切割 
  3.  * @param {*} str  
  4.  */ 
  5. function firstToUpper1(str) { 
  6.     return str.trim().toLowerCase().replace(str[0], str[0].toUpperCase()); 
  7. /** 
  8.  * 方法二:js正则 
  9.  * @param {*} str  
  10.  */ 
  11. function firstToUpper2(str){ 
  12.     return str.replace(/\b(\w)(\w*)/g, function($0, $1, $2) { 
  13.         return $1.toUpperCase() + $2.toLowerCase(); 
  14.     }); 
  15. /** 
  16.  * 方法三:js正则 
  17.  * @param {*} str  
  18.  */ 
  19. function firstToUpper3(str){ 
  20.     return str.toLowerCase().replace(/( |^)[a-z]/g,(L)=>L.toUpperCase()); 

6、计算2个日期之间相差多少天

  1. function getDays(strDateStart,strDateEnd){ 
  2.    var strSeparator = "-"; //日期分隔符 
  3.    var oDate1; 
  4.    var oDate2; 
  5.    var iDays; 
  6.    oDate1= strDateStart.split(strSeparator); 
  7.    oDate2= strDateEnd.split(strSeparator); 
  8.  var strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]); 
  9.   var strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]); 
  10.    iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24)//把相差的毫秒数转换为天数 
  11.    return iDays ; 

7、生成随机十六进制颜色

  1. function randomHexColor() { 
  2. //随机生成十六进制颜色 
  3.  var hex = Math.floor(Math.random() * 16777216).toString(16); 
  4. //生成ffffff以内16进制数 
  5.  while (hex.length < 6) { 
  6. //while循环判断hex位数,少于6位前面加0凑够6位  hex = '0' + hex; } 
  7.  return '#' + hex; //返回‘#'开头16进制颜色 

8、数组去重

  1. const removeDuplicates = (arr) => [...new Set(arr)];      
  2. console.log(removeDuplicates([1, 2, 3, 3, 4, 4, 5, 5, 6])); 
  3. // Result: [ 1, 2, 3, 4, 5, 6 ] 

9、从 URL 获取查询参数

  1. function getParameterByName(name, url) { 
  2.     if (!url) url = window.location.href; 
  3.     name = name.replace(/[\[\]]/g, "\\$&"); 
  4.     var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
  5.         results = regex.exec(url); 
  6.     if (!results) return null
  7.     if (!results[2]) return ''
  8.     return decodeURIComponent(results[2].replace(/\+/g, " ")); 

10、校验数字是奇数还是偶数

  1. const isEven = num => num % 2 === 0;      
  2. console.log(isEven(2));  
  3. // Result: True 

11、求数字的平均值

  1. const average = (...args) => args.reduce((a, b) => a + b) / args.length;      
  2. average(1, 2, 3, 4); 
  3. // Result: 2.5 

12、回到顶部

  1. function topFunction() { 
  2.  document.body.scrollTop = 0;  
  3.  document.documentElement.scrollTop = 0;  
  4.  } 

13、翻转字符串

  1. // reverse 
  2. var name = "My city is WH"
  3.  
  4. var resultStr = name.split('').reverse().join(''); 
  5. console.log(resultStr);  // HW si ytic yM// charAt 
  6. var name = "My city is WuHan";  
  7. var nameArr = name.split('');  
  8. var resultStr = '';  
  9. for (var i = nameArr.length-1; i >= 0; i--) {     
  10.  resultStr += name.charAt(i);  
  11.  }  
  12.  console.log(resultStr); // naHuW si ytic yM 

14、校验数组是否为空

  1. const isNotEmpty = arr => Array.isArray(arr) && arr.length > 0;   
  2. isNotEmpty([1, 2, 3]); 
  3. // Result: true 

 

责任编辑:姜华 来源: IT技术分享社区
相关推荐

2011-07-07 10:35:53

htaccess

2018-05-10 15:35:03

前端代码图像

2011-07-14 10:07:19

PHP

2020-11-16 16:04:42

CSS设计代码

2013-03-29 09:03:59

iOS实用小代码iOS开发

2023-12-12 07:40:52

JavaScript面试题前端

2022-05-17 16:56:33

开发工具前端

2021-10-13 07:48:23

Options模式编程

2013-04-07 10:40:55

前端框架前端

2024-03-11 15:08:26

Linux操作系统进程

2010-11-02 14:11:15

SilverlightWPF微软开发

2015-12-04 10:04:53

2016-09-12 17:19:51

JavaScriptArray操作技巧

2015-10-08 08:53:46

PHP代码片段

2015-11-02 09:25:07

jQuery代码片段

2017-09-20 15:07:32

数据库SQL注入技巧分享

2021-04-09 10:26:43

Python编程技术

2024-01-19 08:20:27

JavaScript编程语言箭头函数

2020-05-19 08:06:57

代码重构代码开发

2011-07-03 19:07:47

关键词
点赞
收藏

51CTO技术栈公众号