前端:分享一些實用的JS代碼片段

今天給大家分享一些實用的JS代碼片段,有需要的朋友歡迎收藏!

? ? ? ?d41805dd2220e1bd34cb40947a4a194b.png ? ? ? ?

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

fa3cd4cec183f7f5987ff3383398bb16.png

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270385.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270385.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270385.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

20145206 《信息安全系統設計基礎》第十二周學習總結

20145206 《信息安全系統設計基礎》第十二周學習總結 本周學習目標 1、第九周代碼檢查 2、第十周代碼檢查 3、第十一周代碼檢查 博客鏈接 20145206 《信息安全系統設計基礎》第九周學習總結20145206 《信息安全系統設計基礎》第十周學習總結20145206 《信息安全系統設計基礎》第…

linux數據同步技術比較,linux下實現web數據同步的四種方式(性能比較)教程.docx

linux下實現web數據同步的四種方式(性能比較)教程實現web數據同步的四種方式1、nfs實現web數據共享2、rsync inotify實現web數據同步3、rsyncsersync更快更節約資源實現web數據同步4、unisoninotify實現web數據雙向同步一、nfs實現web數據共享?nfs能實現數據同步是通過NAS(網絡…

lambda創建線程

Testpublic void add() {//方式一Thread thread1 new Thread("ttt") {Overridepublic void run() {System.out.println("1");}};thread1.start();//方式二Runnable runnable new Runnable() {Overridepublic void run() {System.out.println("2&quo…

電腦技巧:F5稱為萬能鍵,看了才知道它的強大

目錄 NO.1 瀏覽器刷新 NO.2 PPT快速放映 NO.3 Word快速定位 NO.4 Excel快速定位 NO.5 記事本錄入當前時間 今天給大家介紹一個經常被大家忽視的但非常實用的快捷鍵F5具體有哪些用法。 ★萬能快捷鍵★ F5 NO.1 瀏覽器刷新 刷新功能 F5最常用的就是網頁刷新功能&#xff0c;相比這…

學號20145220《信息安全系統設計基礎》第12周學習總結

學號20145220《信息安全系統設計基礎》第12周學習總結 教材學習內容總結 學號20145220《信息安全系統設計基礎》第11周學習總結 - 20145220韓旭飛 - 博客園 http://www.cnblogs.com/hxf5220/p/6107112.html 學號20145220《信息安全系統設計基礎》第10周學習總結 - 20145220韓旭…

linux 本地yum 恢復,Linux_RHEL系統恢復安裝光盤中的yum更新源的方法,安裝光盤本地YUM更新源掛載安 - phpStudy...

RHEL系統恢復安裝光盤中的yum更新源的方法安裝光盤本地YUM更新源掛載安裝光盤&#xff1a;復制代碼代碼如下:mount /dev/cdrom /mntvi /etc/yum.repos.d/local.repo修改本地更新源文件&#xff0c;添加內容&#xff1a;復制代碼代碼如下:[HightAvailability]nameHightAvailabil…

FileZilla搭建FTP服務器圖解教程

在日常辦公當中&#xff0c;經常會需要一個共享文件夾來存放一些大家共享的資料&#xff0c;為了保證文件數據的安全&#xff0c;最佳的方式是公司內部服務器搭建FTP服務器&#xff0c;然后分配多個用戶給相應的人員。今天給大家分享FileZilla搭建FTP服務器圖解教程&#xff0c…

linux kafka離線安裝,centos 離線安裝confluent_kafka 模塊

centos 離線安裝confluent_kafka 模塊背景&#xff1a;需要安裝Python模塊的機子不能上網&#xff0c;只能下載源碼進行安裝說明&#xff1a;如果可以上網直接pip install confluent_kafka 即可需安裝模塊&#xff1a;confluent_kafka #confluent_kafka 依賴librdkafka 模塊&am…

運維:Windows 系統安全日志中登錄類型介紹

目錄 Windows 登錄類型 登錄類型2&#xff1a;交互式登錄&#xff08;Interactive&#xff09; 登錄類型3&#xff1a;網絡&#xff08;Network&#xff09; 登錄類型4&#xff1a;批處理&#xff08;Batch&#xff09; 登錄類型5&#xff1a;服務&#xff08;Service&#xff…

webdriver鼠標上下滑動

有時候我們需要對窗口顯示的頁面上下滑動&#xff0c;以顯示當前正在處理的位置&#xff0c;這就需要用到webdriver模擬鼠標上下滑動 package test20161201;import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.…

c語言燈塔案例求塔低數,C++:有一個8層燈塔,每層所點燈數都等于該層上一層的兩倍,一共有765盞燈,求塔底的燈數...

滿意答案0214zyt2013.05.23采納率&#xff1a;51% 等級&#xff1a;12已幫助&#xff1a;6734人// Note:Your choice is C IDE#include #include using namespace std;int main(){//第一,窮舉法int i,j;int n,s;for(i0;i<765;i)//窮舉的范圍可以進一步縮小&#xff0c;交…

電腦知識:電腦無法開機解決方案

電腦無法開機&#xff0c;首先不要緊張&#xff0c;你電腦里面的文件資料99.99%不會丟失&#xff0c;那有可能人問了&#xff0c;剩余0.001%是什么&#xff0c;只有一種可能&#xff0c;就是你的硬盤硬件徹底壞了。 今天小編講的這幾招都是對非常容易上手的電腦小白&#xff0c…

電腦技巧:鍵盤上最長的按鍵空格鍵使用技巧

目錄 01、音視頻播放器的暫停/播放切換 02、Alt空格鍵 03、Ctrl空格鍵 04、Shift空格鍵 05、游戲中按鍵 06、密碼完美替代者 空格鍵是所有鍵盤中的按鍵最長一個&#xff0c;我們平常使用最多的按鍵就是在輸入文字的時候按下空格鍵&#xff0c;其實除了空格&#xff0c;空格鍵還…

c語言從入門到精通ppt,C語言從入門到精通第1章.ppt

C語言從入門到精通第1章1.2.2 認識Turbo C 2.0 1.2.2 認識Turbo C 2.0 ⑴ 菜單欄&#xff1a;包括【File】(文件)菜單、【Edit】(編輯)菜單、【Run】(運行)菜單、【Compile】(編譯)菜單、【Project】(項目)菜單、【Options】(選擇)菜單、【Debug】(調試)菜單和【Break/watch】(…

Hadoop HBase概念學習系列之HBase里的客戶端和HBase集群建立連接(詳細)(十四)...

需要遵循以下步驟&#xff1a; 1、客戶端和Zookeeper集群建立連接。在這之前客戶端需要獲得一些信息&#xff08;可以從HBase配置文件中讀取或是直接指定&#xff09;。客戶端從Zookeeper集群中讀取-ROOT-表的位置信息。這是客戶端發起的第一次查詢。 2、客戶端連接-ROOT-表&am…

run()方法和start()方法測試解析

run()方法沒有啟動一個新的線程&#xff0c;通過如下代碼可以看出&#xff0c;是main主線程執行的 start()方法啟動了一個新線程&#xff0c;啟動了線程&#xff0c;從如下代碼看出t1線程執行了代碼

操作系統:升級Windows 11正式版的四種方法

距離 Windows 11 預覽版測試已經過去近四個半月。 終于&#xff0c;在 10 月 5 日&#xff0c;微軟的 Windows 11 正式版操作系統全面上市。 Win11 的正式上線&#xff0c;打破了微軟在 Win 10 剛發布之時曾表示 Win 10 將會是最后一代 Windows 的說法。 微軟表示&#xff0c;…

c語言不循環鏈表,無頭單向不循環鏈表相關接口實現(C語言)

單鏈表相關接口介紹List.h#define _CRT_SECURE_NO_WARNINGS#ifndef __LIST_H__#define __LIST_H__#include#include#include#includetypedef int SLTDataType;typedef struct SListNode{SLTDataType _data;struct SListNode* _next;}SListNode;typedef struct SList{SListNode*…

hashmap中的hash擾動函數

https://www.zhihu.com/question/20733617轉載于:https://www.cnblogs.com/lushilin/p/6142597.html