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

1、获取浏览器的版本

function getBrowser() {var UserAgent = navigator.userAgent.toLowerCase();var browserInfo = {};var browserArray = {IE: window.ActiveXObject || "ActiveXObject" in window, // IEChrome: 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 (var i in browserArray) {if (browserArray[i]) {var versions = '';if (i == 'IE') {versions = UserAgent.match(/(msie\s|trident.*rv:)([\w.]+)/)[2];} else if (i == 'Chrome') {for (var mt in navigator.mimeTypes) {//检测是否是360浏览器(测试只有pc端的360才起作用)if (navigator.mimeTypes[mt]['type'] == 'application/360softmgrplugin') {i = '360';}}versions = UserAgent.match(/chrome\/([\d.]+)/)[1];} else if (i == 'Firefox') {versions = UserAgent.match(/firefox\/([\d.]+)/)[1];} else if (i == 'Opera') {versions = UserAgent.match(/opera\/([\d.]+)/)[1];} else if (i == 'Safari') {versions = UserAgent.match(/version\/([\d.]+)/)[1];} else if (i == 'Edge') {versions = UserAgent.match(/edge\/([\d.]+)/)[1];} else if (i == 'QQBrowser') {versions = UserAgent.match(/qqbrowser\/([\d.]+)/)[1];}browserInfo.type = i;browserInfo.versions = parseInt(versions);}}return browserInfo;
}

2、颜色RGB转十六进制

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

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

< script type = "text/javascript" >
//屏蔽右键菜单
document.oncontextmenu = function(event) {if (window.event) {event = window.event;}try {var the = event.srcElement;if (! ((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {return false;}return true;} catch(e) {return false;}
}
//屏蔽粘贴
document.onpaste = function(event) {if (window.event) {event = window.event;}try {var the = event.srcElement;if (! ((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {return false;}return true;} catch(e) {return false;}
}
//屏蔽复制
document.oncopy = function(event) {if (window.event) {event = window.event;}try {var the = event.srcElement;if (! ((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {return false;}return true;} catch(e) {return false;}
}
//屏蔽剪切
document.oncut = function(event) {if (window.event) {event = window.event;}try {var the = event.srcElement;if (! ((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {return false;}return true;} catch(e) {return false;}
}
//屏蔽选中
document.onselectstart = function(event) {if (window.event) {event = window.event;}try {var the = event.srcElement;if (! ((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {return false;}return true;} catch(e) {return false;}
} < /script>/

4、检查日期是否合法

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

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

/*** 方法一:js字符串切割* @param {*} str */
function firstToUpper1(str) {return str.trim().toLowerCase().replace(str[0], str[0].toUpperCase());
}
/*** 方法二:js正则* @param {*} str */
function firstToUpper2(str){return str.replace(/\b(\w)(\w*)/g, function($0, $1, $2) {return $1.toUpperCase() + $2.toLowerCase();});
}
/*** 方法三:js正则* @param {*} str */
function firstToUpper3(str){return str.toLowerCase().replace(/( |^)[a-z]/g,(L)=>L.toUpperCase());
}

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

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

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

function randomHexColor() {
//随机生成十六进制颜色var hex = 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、数组去重

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

9、从 URL 获取查询参数

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

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

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

11、求数字的平均值

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

12、回到顶部

function topFunction() {document.body.scrollTop = 0; document.documentElement.scrollTop = 0; }

13、翻转字符串

// reverse
var name = "My city is WH";var resultStr = name.split('').reverse().join('');
console.log(resultStr);  // HW si ytic yM// charAt
var name = "My city is WuHan";
var nameArr = name.split('');
var resultStr = '';
for (var i = nameArr.length-1; i >= 0; i--) {    resultStr += name.charAt(i); } console.log(resultStr); // naHuW si ytic yM

14、校验数组是否为空

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

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

前端:分享一些实用的JS代码片段相关推荐

  1. 经验分享:10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...

  2. 网站前端进行违禁词过滤js代码

    var strChar=['最佳','最具','最爱','最赚','最优','最优秀','最好','最大','最大程度','最高','最高级','最高端','最奢侈','最低','最低级','最底', ...

  3. web前端学习中CSS,JS代码压缩

    web前端要学习的知识有很多,前端基础要学习三个部分:HTML,CSS,JavaScript(简称JS),因此首先明确三个概念:HTML负责结构,网页想要表达的内容由html书写. CSS负责样式,网 ...

  4. 前端:收集15个非常实用的JS代码,值得收藏

    CSDN话题挑战赛第2期 参赛话题:学习笔记 目录 1.随机生成字符串 2.实现字符串的翻转 3.删除数组中重复元素 4.RGB到十六进制转换机制 5.打乱一个数组,重新组合 6.获取两个日期的时间间 ...

  5. php新建代码片段,非常实用的PHP代码片段(重点推荐)_PHP教程

    网上有很多 PHP 代码片段可以提高开发效率,也可以学习一下其中的技巧而应用在自己的项目中,下面 我爱水煮鱼 就精选了几个比较有用的 PHP 片段. 从网页中提取关键词 从指定页面中提取关键词并显示出 ...

  6. 那些优雅灵性的JS代码片段

    我的个人网站:拓跋的前端客栈~了解一哈.这里是原文地址,如果您发现我文章中存在错误,请尽情向我吐槽,大家一起学习一起进步φ(>ω<*) 引子 如果您甘于平凡,写代码对您来说可以就是Ctrl ...

  7. 127个常用的JS代码片段,每段代码花30秒就能看懂(六)

    大家好,今天我继续给大家分享本系列文章的最后一部分,感谢你对本系列文章的持续关注,希望对你的日常工作有所帮助. 106.shuffle 使用 Fisher–Yates shuffle 洗牌算法对数组的 ...

  8. 10个典型实用的PHP代码片段

    转载地址:http://www.codeceo.com/article/10-useful-php-code.html 本文将介绍10个经常会用到的PHP代码片段,包括黑名单过滤.随机颜色生成器.从网 ...

  9. 十条实用的jQuery代码片段

    以下十项jQuery示例可以帮助大家的Web设计项目顺利实现效率提升. 检测IE浏览器 在进行CSS设计时,IE浏览器对开发者及设计师而言无疑是个麻烦.尽管IE6的黑暗时代已经过去,IE浏览器家族的人 ...

最新文章

  1. .net mysql中文乱码解决办法
  2. python二叉树深度 判断平衡树
  3. 为何断点不停 Application_Start()方法
  4. socket 套接字的基本概念
  5. 收集Java面试题知识点(Java基础部分三)
  6. 【AMAD】django-activity-stream
  7. error C2668: “pow”: 对重载函数的调用不明确
  8. 深入探索Java工作原理:JVM,内存回收及其他
  9. 用友U8案例教程财务报表
  10. linux透明桥,linux透明防墙(网桥模式).doc
  11. 线性规划中的对偶(Duality in linear programs)
  12. 使用新浪微博开发者平台的第一步---注册
  13. WebView打不开或者显示异常可能原因
  14. 自动化接口实战(一)
  15. 通过数据告诉你centos和debian哪个好?
  16. smaa github iryoku
  17. 一款好的软件,软件测试必不可少...
  18. 无代码开发平台为什么能火?它是如何收费的
  19. Study-VTK:vtkWidget 分割/配准类之 放置种子点(Qt + vtkSeedWidget)
  20. 输出1-100的奇数(每行输出6个)

热门文章

  1. MySQL数据库添加一个字段
  2. //获取本地IP地址和对端IP地址
  3. Oracle找出需要建立索引的表
  4. 【python数字信号处理】——线性卷积
  5. 【sqlite常用操作SQL语句】
  6. 定义列表的特点html,HTML的列表表格表单知识点
  7. java gc log调优_Java 开启 gc 日志
  8. 超微服务器电源短接启动图解_教你一招,让你的电脑启动速度秒杀别人
  9. wpf window 不执行show 就不能load执行_Numpy反序列化命令执行漏洞分析(CVE-2019-6446)附0day...
  10. AD20学习笔记5---PCB设计规则设置及PCB手工布线