摘要:說到底還是練習(xí)的不夠多,一直處于只看不做的程度上。所以搜集了這些正則習(xí)題,來保證溫故而知新。本文不講基礎(chǔ),只記錄習(xí)題,如果后續(xù)有新的題目,也會(huì)保持更新。
正則表達(dá)式,有木有人像我一樣,學(xué)了不知道多少遍,學(xué)的時(shí)候看起來都懂了,過一段時(shí)間就又忘的差不多了,等真正要用到的時(shí)候,還是一臉懵逼。說到底還是練習(xí)的不夠多,一直處于只看不做的程度上。所以搜集了這些正則習(xí)題,來保證溫故而知新。建議讀者看完題目后可以自己先做一做,然后再看實(shí)現(xiàn)方法。本文不講基礎(chǔ),只記錄習(xí)題,如果后續(xù)有新的題目,也會(huì)保持更新。
1、var s1 = "get-element-by-id"; 給定這樣一個(gè)連字符串,寫一個(gè)function轉(zhuǎn)換為駝峰命名法形式的字符串 getElementById
var f = function(s) { return s.replace(/-w/g, function(x) { return x.slice(1).toUpperCase(); }) }
2、判斷字符串是否包含數(shù)字
function containsNumber(str) { var regx = /d/; return regx.text(str); }
3、判斷電話號(hào)碼
function isPhone(tel) { var regx = /^1[34578]d{9}$/; return regx.test(tel); }
4、判斷是否符合指定格式
給定字符串str,檢查其是否符合如下格式
XXX-XXX-XXXX
其中X為Number類型
function matchesPattern(str) { return /^(d{3}-){2}d{4}&/.test(str); }
5、判斷是否符合USD格式
給定字符串 str,檢查其是否符合美元書寫格式
以 $ 開始
整數(shù)部分,從個(gè)位起,滿 3 個(gè)數(shù)字用 , 分隔
如果為小數(shù),則小數(shù)部分長(zhǎng)度為 2
正確的格式如:$1,023,032.03 或者 $2.03,錯(cuò)誤的格式如:$3,432,12.12 或者 $34,344.3**
function isUSD(str) { var regx = /^$d{1,3}(,d{3})*(.d{2})?$/; return regx.test(str); }
6、JS實(shí)現(xiàn)千位分隔符
function format(number) { var regx = /d{1,3}(?=(d{3})+$)/g; return (number + "").replace(regx, "$&,") // $&表示與regx相匹配的字符串 }
7、獲取 url 參數(shù)
獲取 url 中的參數(shù)
指定參數(shù)名稱,返回該參數(shù)的值 或者 空字符串
不指定參數(shù)名稱,返回全部的參數(shù)對(duì)象 或者 {}
如果存在多個(gè)同名參數(shù),則返回?cái)?shù)組
function getUrlParam(url, key) { var arr = {}; url.replace(/??(w+)=(w+)&?/g, function(match, matchKey, matchValue) { if (!arr[matchKey]) { arr[matchKey] = matchValue; } else { var temp = arr[matchKey]; arr[matchKey] = [].concat(temp, matchValue); } }); if (!key) { return arr; } else { for (ele in arr) { if (ele = key) { return arr[ele]; } } return ""; } }
8、驗(yàn)證郵箱
function isEmail(email) { var regx = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+$/; return regx.test(email); }
9、驗(yàn)證身份證號(hào)碼
身份證號(hào)碼可能為15位或18位,15位為全數(shù)字,18位中前17位為數(shù)字,最后一位為數(shù)字或者X
function isCardNo(number) { var regx = /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/; return regx.test(number); }
10、匹配漢字
var regx = /^[u4e00-u9fa5]{0,}$/;
11、去除首尾的"/"
var str = "/asdf//"; str = str.replace(/^/*|/*$/g, "");
12、判斷日期格式是否符合 "2017-05-11"的形式,簡(jiǎn)單判斷,只判斷格式
var regx = /^d{4}-d{1,2}-d{1,2}$/
13、判斷日期格式是否符合 "2017-05-11"的形式,嚴(yán)格判斷(比較復(fù)雜)
var regx = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
14、IPv4地址正則
var regx = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
15、十六進(jìn)制顏色正則
var regx = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
16、車牌號(hào)正則
var regx = /^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領(lǐng)A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學(xué)警港澳]{1}$/;
17、過濾HTML標(biāo)簽
var str="dasdsa
nice
test" var regx = /<[^<>]+>/g; str = str.replace(regx, "");
18、密碼強(qiáng)度正則,最少6位,包括至少1個(gè)大寫字母,1個(gè)小寫字母,1個(gè)數(shù)字,1個(gè)特殊字符
var regx = /^.*(?=.{6,})(?=.*d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
19、URL正則
var regx = /^((https?|ftp|file)://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/;
20、匹配浮點(diǎn)數(shù)
var regx = /^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$/;
21、
寫一個(gè)正則表達(dá)式,匹配 "
var str = ""; var regx = /^<.*?>/; var resiult = regx.exec(str)[0];
最后推薦一個(gè)練習(xí)正則的網(wǎng)站 regulex%7B2%7D%5Cd%7B4%7D%26),可以查看正則匹配的走向
如果喜歡請(qǐng)關(guān)注我的Github,給個(gè)Star吧,我會(huì)定期分享一些JS中的知識(shí),^_^
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/93933.html
摘要:下面代碼會(huì)存在什么問題,如何改進(jìn)一行代碼輸出之間的所有偶數(shù)。簡(jiǎn)述進(jìn)程之間如何通信多路復(fù)用的作用模型的區(qū)別什么是并發(fā)和并行解釋什么是異步非阻塞的作用面試題說說你知道的命令如何查看某次提交修改的內(nèi)容答案掃碼下面的二維碼訂閱即可獲取。 引言 最近在刷面試題,所以需要看大量的 Python 相關(guān)的面試題,從大量的題目中總結(jié)了很多的知識(shí),同時(shí)也對(duì)一些題目進(jìn)行拓展了,但是在看了網(wǎng)上的大部分面試題不...
摘要:詳解十大常用設(shè)計(jì)模式力薦深度好文深入理解大設(shè)計(jì)模式收集各種疑難雜癥的問題集錦關(guān)于,工作和學(xué)習(xí)過程中遇到過許多問題,也解答過許多別人的問題。介紹了的內(nèi)存管理。 延遲加載 (Lazyload) 三種實(shí)現(xiàn)方式 延遲加載也稱為惰性加載,即在長(zhǎng)網(wǎng)頁中延遲加載圖像。用戶滾動(dòng)到它們之前,視口外的圖像不會(huì)加載。本文詳細(xì)介紹了三種延遲加載的實(shí)現(xiàn)方式。 詳解 Javascript十大常用設(shè)計(jì)模式 力薦~ ...
摘要:函數(shù)式編程前端掘金引言面向?qū)ο缶幊桃恢币詠矶际侵械闹鲗?dǎo)范式。函數(shù)式編程是一種強(qiáng)調(diào)減少對(duì)程序外部狀態(tài)產(chǎn)生改變的方式。 JavaScript 函數(shù)式編程 - 前端 - 掘金引言 面向?qū)ο缶幊桃恢币詠矶际荍avaScript中的主導(dǎo)范式。JavaScript作為一門多范式編程語言,然而,近幾年,函數(shù)式編程越來越多得受到開發(fā)者的青睞。函數(shù)式編程是一種強(qiáng)調(diào)減少對(duì)程序外部狀態(tài)產(chǎn)生改變的方式。因此,...
摘要:前言在兩家大廠工作了年,當(dāng)了年的前端面試官,把一些較難的面試題與答案匯總在我的中。請(qǐng)說出至少種方法,越難越好難度阿里騰訊這種題有簡(jiǎn)單方法,也有難的方法,我建議大伙在面試的時(shí)候,盡量往難的說。 前言 在兩家大廠工作了6年,當(dāng)了3年的前端面試官,把一些較難的面試題與答案匯總在我的Github中。希望對(duì)大家有所幫助,助力大家進(jìn)入自己理想的企業(yè)。 項(xiàng)目地址是:https://github.co...
摘要:前言在兩家大廠工作了年,當(dāng)了年的前端面試官,把一些較難的面試題與答案匯總在我的中。請(qǐng)說出至少種方法,越難越好難度阿里騰訊這種題有簡(jiǎn)單方法,也有難的方法,我建議大伙在面試的時(shí)候,盡量往難的說。 前言 在兩家大廠工作了6年,當(dāng)了3年的前端面試官,把一些較難的面試題與答案匯總在我的Github中。希望對(duì)大家有所幫助,助力大家進(jìn)入自己理想的企業(yè)。 項(xiàng)目地址是:https://github.co...
閱讀 2045·2023-04-26 02:23
閱讀 1789·2021-09-03 10:30
閱讀 1351·2019-08-30 15:43
閱讀 1191·2019-08-29 16:29
閱讀 530·2019-08-29 12:28
閱讀 2332·2019-08-26 12:13
閱讀 2169·2019-08-26 12:01
閱讀 2400·2019-08-26 11:56