摘要:前言在我們做用戶授權登錄微信授權,以及根據對應瀏覽器做對應的操作的時候,經常會遇到需要判斷用戶使用的瀏覽器的需求,以及在需要用戶輸入信息的時候,有需要驗證的一些正則。
前言
在我們做用戶授權登錄(微信,qq授權),以及根據對應瀏覽器做對應的操作的時候,經常會遇到需要判斷用戶使用的瀏覽器的需求,以及在需要用戶輸入信息的時候,有需要驗證的一些正則。如果喜歡的話可以點波贊/關注,支持一下,希望大家看完本文可以有所收獲。
個人博客了解一下:obkoro1.com判斷用戶瀏覽器 navigator.userAgent
判斷用戶所使用的瀏覽器主要用到的api是navigator.userAgent,這是一個只讀的字符串,聲明了瀏覽器用于 HTTP 請求的用戶代理頭的值,不同瀏覽器的userAgent值都不相同,所以我們可以根據這個字符串來判斷用戶是從哪個瀏覽器進入的。
判斷方式:下面兩個是剛做的demo獲取的值,仔細觀察下面兩個字符串,會發現有些值是不一樣的,并且瀏覽器特有的,依據這個我們就可以作為不同瀏覽器的判斷條件。
QQ內置瀏覽器的userAgent值:mozilla/5.0 (iphone; cpu iphone os 11_1_2 like mac os x) applewebkit/604.3.5 (khtml, like gecko) mobile/15b202 qq/7.5.8.422 v1_iph_sq_7.5.8_1_app_a pixel/1080 core/uiwebview device/apple(iphone 8plus) nettype/wifi qbwebviewtype/1
微信內置瀏覽器的userAgent值:mozilla/5.0 (iphone; cpu iphone os 11_1_2 like mac os x) applewebkit/604.3.5 (khtml, like gecko) mobile/15b202 micromessenger/6.6.6 nettype/wifi language/zh_cn
示例使用方式,直接使用這個api讀取值,然后根據事先觀察userAgent字符串的不同之處來判斷:
let url = navigator.userAgent.toLowerCase(); //使用toLowerCase將字符串全部轉為小寫 方便我們判斷使用 if (url.indexOf("15b202 qq") > -1) { //多帶帶判斷QQ內置瀏覽器 alert("QQ APP 內置瀏覽器,做你想做的操作"); } if (url.indexOf("micromessenger") > -1) { //多帶帶判斷微信內置瀏覽器 alert("微信內置瀏覽器,做你想做的操作"); } if (url.indexOf("15b202") > -1) { //判斷微信內置瀏覽器,QQ內置瀏覽器 alert("QQ和微信內置瀏覽器,做你想做的操作"); }
上面判斷了微信和QQ的內置瀏覽器,如果有更多不同的需求的話,可以按照上面的方式,先獲取userAgent的字符串,然后再根據觀察,使用indexOf判斷是否含有指定的字符,來對不同瀏覽器進行不同的操作。
一部分正則判斷用戶輸入信息為了避免用戶胡亂輸入就通過驗證,很多時候我們都會采用正則表達式來驗證一下用戶輸入的信息是否符合規范。這部分的內容基本上是在網上收集來的,這里跟大家一起分享一下,有需要的可以記在自己的有道云里面。
如何驗證?驗證的方式當然是很多了,這里推薦采用test()方法來驗證。
let isTrue=RegExpObject.test(string);// RegExpObject為正則 string是要檢測的字符串 // 如果字符串 string 中含有與 RegExpObject 匹配的文本,則返回 true,否則返回 false。 if (isTrue){ //驗證成功 do something }elseP{ //驗證失敗 }身份證號碼正則表達式:
第一代身份證只有15位數,第二代身份證有18位數,各位按照需求來選擇表達式。
//第二代身份證號碼正則 let isTrue = /^[1-9]d{5}(18|19|20)d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)d{3}[0-9Xx]$/; //第一代身份證正則表達式(15位) let isTrue=/^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$/;手機號碼正則表達式:
時間截止為:2018年1月11日
移動號段:134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 198
聯通號段:130 131 132 145 146 155 156 166 171 175 176 185 186
電信號段:133 149 153 173 174 177 180 181 189 199
虛擬運營商:170
let isTrue = /^(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/;郵箱正則表達式:
let isTrue =/^([A-Za-z0-9_-.u4e00-u9fa5])+@([A-Za-z0-9_-.])+.([A-Za-z]{2,8})$/;用戶名正則:
////用戶名正則,4到16位(字母,數字,下劃線,減號) let isTrue = /^[a-zA-Z0-9_-]{4,16}$/;密碼正則:
密碼正則,以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線
let isTrue =^[a-zA-Z]w{5,17}$;
強密碼正則,最少6位,包括至少1個大寫字母,1個小寫字母,1個數字,1個特殊字符
let isTrue = /^.*(?=.{6,})(?=.*d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;QQ號碼正則:
let isTrue = /^[1-9][0-9]{4,10}$/;微信號碼正則:
//微信號正則,6至20位,以字母開頭,字母,數字,減號,下劃線 let isTrue = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;特殊字符檢測正則:
let isTrue= /[""<>%;)(&+]+-!!@#$~/;域名正則:
let isTrue=[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?;車牌號碼正則:
let isTrue = /^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/;包含中文正則:
let isTrue = /[u4E00-u9FA5]/; //這個可以用于驗證用戶的真實姓名。護照正則:
let isTrue=/^(Pd{7}|Gd{7,8}|THd{7,8}|Sd{7,8}|Ad{7,8}|Ld{7,8}|d{9}|Dd+|1[4,5]d{7})$/;固定電話正則:
let isTrue=((d{3,4})|d{3,4}-|s)?d{8};IP地址正則:
let isTrue=d+.d+.d+.d+;郵政編碼正則:
let isTrue=[1-9]{1}(d+){5};經緯度正則
//經度正則 let isTrue=/^(-|+)?(((d|[1-9]d|1[0-7]d|0{1,3}).d{0,6})|(d|[1-9]d|1[0-7]d|0{1,3})|180.0{0,6}|180)$/; //緯度正則 let isTrue=/^(-|+)?([0-8]?d{1}.d{0,6}|90.0{0,6}|[0-8]?d{1}|90)$/;
常用的正則表達式大概就是上面這些了,如果大家還有其他干貨的話,歡迎在評論區留言分享一下。
結語以上就是本文的內容了,希望大家看完可以有所收獲,喜歡的話,趕緊點波訂閱關注/喜歡,以后方便查找復制粘貼,233。
最后:如需轉載,請放上原文鏈接并署名。碼字不易,感謝支持!本人寫文章本著交流記錄的心態,寫的不好之處,不撕逼,但是歡迎指點。
個人blog and 掘金個人主頁
如果喜歡本文的話,可以關注一下我剛開的訂閱號,共同學習成長。
以上2018.5.5
參考資料:HTML DOM userAgent 屬性
JavaScript test() 方法
2018最新手機號碼正則表達式
身份證號碼的正則表達式
JavaScript手機號碼格式驗證方法
郵箱/郵件地址的正則表達式及分析
前端表單驗證常用的15個JS正則表達式
前端開發中的 正則表達式 及常用正則表達式大全
密碼強度的正則表達式
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94780.html
摘要:對前端來說,使用的場景不多,但是像微信端的對話系統的表情包,就使用到了一個特定的規則。我是一個前端,工作年了,現在失業,想進入騰訊工作,這是我的聯系方式這個正則雖 我發現有個別字符被這個編輯器給刷掉了,但是灰色區域顯示正常,以灰色區域代碼為準 什么玩意? 在我剛開始學習編程的時候,就聽過正則了,也聽說正則很牛逼,懂正則的更牛逼。但是苦于沒有人指點,也沒有使用正則的場景,自己看教程又懵逼...
摘要:好多編輯器例如等都支持這樣的語法來快速的編寫代碼如何優雅地使用把標簽放在結束標簽之后結束標簽之前的差別什么是響應式設計怎樣進行 書籍 《JavaScriptDOM編程藝術》《JavaScript高級程序設計》《JavaScript框架設計》《JavaScript專家編程》《JavaScript Ninjia》《JavaScript語言精粹(修訂版)》《JavaScript設計模式》《J...
摘要:好多編輯器例如等都支持這樣的語法來快速的編寫代碼如何優雅地使用把標簽放在結束標簽之后結束標簽之前的差別什么是響應式設計怎樣進行 書籍 《JavaScriptDOM編程藝術》《JavaScript高級程序設計》《JavaScript框架設計》《JavaScript專家編程》《JavaScript Ninjia》《JavaScript語言精粹(修訂版)》《JavaScript設計模式》《J...
閱讀 795·2021-11-24 09:38
閱讀 997·2021-11-11 11:01
閱讀 3236·2021-10-19 13:22
閱讀 1523·2021-09-22 15:23
閱讀 2827·2021-09-08 09:35
閱讀 2765·2019-08-29 11:31
閱讀 2119·2019-08-26 11:47
閱讀 1563·2019-08-26 11:44