摘要:之六關(guān)于正則表達(dá)式開篇我今天下午上班的時(shí)候接到了搜狐的面試通知,面試時(shí)間是后天也就是周三上午的十點(diǎn)半,然后周三下午的時(shí)候還有的線上答題。
之六:關(guān)于正則表達(dá)式 開篇
我今天下午上班的時(shí)候接到了搜狐的面試通知,面試時(shí)間是后天也就是周三上午的十點(diǎn)半,然后周三下午的時(shí)候還有58的線上答題。
所以啦,這幾天要抓緊復(fù)習(xí)的速度,不能拖拖拉拉。今天完成正則表達(dá)式,明天就更新css3的知識
這個(gè)時(shí)候各大公司的筆試面試都開始了,各位小伙伴一起加油吧!
正則的知識很重要,一定要重視哦
基本語法介紹 首先如何實(shí)例化一個(gè)正則表達(dá)式對象// 使用字面量的方式 var reg = /d/g; // 使用構(gòu)造函數(shù)的方式 var reg = new RegExp("","g");
好,解釋一下這兩種方式,一種就是把要寫的正則放在兩個(gè)//之間,其中//后面的是修飾符
第二種,是通過new一個(gè)RegExp,接受兩個(gè)參數(shù),第一個(gè)是正則的內(nèi)容。在前面加上了一個(gè)是對中的進(jìn)行轉(zhuǎn)義,記住這個(gè)是必須的,有特殊的字符都需要轉(zhuǎn)義。第二個(gè)參數(shù)是修飾符
下面說一下元字符:
元字符的概念:元字符是在正則表達(dá)式中有特殊含義的非字母字符
f 換頁符 換行符 回車 制表符 v 垂直制表符 / 一個(gè) / 直接量 一個(gè) 直接量 . 一個(gè) . 直接量 * 一個(gè) * 直接量 一個(gè) + 直接量 ? 一個(gè) ? 直接量 | 一個(gè) | 直接量 ( 一個(gè) ( 直接量 ) 一個(gè) ) 直接量 [ 一個(gè) [ 直接量 ] 一個(gè) ] 直接量 { 一個(gè) { 直接量 } 一個(gè) } 直接量字符類和范圍類:
我們可以通過[]來表示一個(gè)類,匹配的時(shí)候匹配到[]其中一個(gè)即可。
例如[0-9]表示數(shù)字0到9,[a-zA-Z]表示匹配所有的大小寫字母。
同時(shí)我們可以在[]中加入^表示一個(gè)反向類,例如[^9]表示除了9之外的所有字符
. 表示除了回車符和換行符之外的所有字符,等同于 [^ ] d 表示數(shù)字字符,等同于[0-9] D 表示非數(shù)字字符,等同于[^0-9] s 表示空白符,等同于[ xf ] S 表示非空白符,等同于[^ xf ] w 表示單詞字符(字母數(shù)字下劃線),等同于[a-zA-Z_0-9] W 表示非單詞字符,等同于[^a-zA-Z_0-9]邊界匹配字符:
^ 表示以XXX開始 $ 表示以XXX結(jié)束 單詞邊界 B 非單詞邊界量詞:
? 出現(xiàn)零次或一次(最多出現(xiàn)一次) + 出現(xiàn)一次或多次(至少出現(xiàn)一次) * 出現(xiàn)零次或多次(任意次) {n} 出現(xiàn)n次 {n,m} 出現(xiàn)n到m次 {n,} 至少出現(xiàn)n次貪婪和非貪婪模式:
1.正則表達(dá)式默認(rèn)是貪婪模式,也就是說,正則匹配是會盡可能按照量詞的上線多匹配
2.想要關(guān)閉正則表達(dá)式的貪婪模式,只需要這么寫/d{1,8}?/加上一個(gè)?即可。
可以用()進(jìn)行分組,可以Byr(on|Ca)sper進(jìn)行或,或者是(/d/w12){9}進(jìn)行轉(zhuǎn)化
分組的內(nèi)容從前到后,分別分組為$1,$2,$3...
(?:Byron).(ok)只要在分組內(nèi)加上?:就可以忽略分組
前瞻:js正則表達(dá)式中只有前瞻沒有后顧。
前瞻就是正則表達(dá)式匹配到規(guī)則的時(shí)候,向前檢查是否符合斷言
exp(?=assert) 正向前瞻,看一下正則后面的內(nèi)容是否可以匹配上 exp(?!assert) 負(fù)向前瞻,看一下正則后面的內(nèi)容是否可以不匹配上對象屬性:
global:是否進(jìn)行全局搜索,默認(rèn)不進(jìn)行,例子:/d/g ignore case:是否忽略大小寫,默認(rèn)是不忽略,例子:/d/i multiline:多行搜索,默認(rèn)不開啟多行搜索 lastIndex:是當(dāng)前表達(dá)式匹配內(nèi)容的最后一個(gè)字符的下一個(gè)位置 source:正則表達(dá)式的文本字符串正則表達(dá)式的兩個(gè)方法:
test() // 接受一個(gè)參數(shù),判斷傳入的字符串是否匹配正則表達(dá)式。
特別注意:如果正則中有g(shù),會出現(xiàn)奇怪的結(jié)果,原因是lastIndex在作怪
exec() // 接受一個(gè)參數(shù)字符串和正則有關(guān)的方法:
search() // 接受一個(gè)參數(shù),傳入要搜索的正則表達(dá)式,如果匹配成功就返回第一個(gè)匹配結(jié)果的index,否則就返回-1 match() // 和正則表達(dá)式exec很像 spilt() // 將字符串分割為數(shù)組 replace() // 支持兩個(gè)參數(shù),第一個(gè)是尋找和正則匹配的,下一個(gè)是替換的內(nèi)容例題
1.用正則匹配手機(jī)號碼
function (tele) { if (tele.search(/^1[34578]d{9}$/) > -1) { return true } else { return false } }
還有一種方法:
function (tele) { return /^1[34578]d{9}$/.test(tele); }
2.用正則從url中截取信息
var url = "http://www.baidu.com/?dsp=ipad&sid=20510&name=wangbin"; var reg = /[?&](w+)=(w+)/g; var obj = {}; while(ret = reg.exec(url)) { obj[ret[1]] = ret[2]; } console.log(obj);
明天就面試?yán)?,祝我成功吧?/p>
對了關(guān)于本期專題的內(nèi)容建議大家去看慕課網(wǎng)上的js正則表達(dá)式專題,視頻詳細(xì)透徹,加油!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/80244.html
摘要:特意對前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會不定期更...
摘要:函數(shù)式編程前端掘金引言面向?qū)ο缶幊桃恢币詠矶际侵械闹鲗?dǎo)范式。函數(shù)式編程是一種強(qiáng)調(diào)減少對程序外部狀態(tài)產(chǎn)生改變的方式。 JavaScript 函數(shù)式編程 - 前端 - 掘金引言 面向?qū)ο缶幊桃恢币詠矶际荍avaScript中的主導(dǎo)范式。JavaScript作為一門多范式編程語言,然而,近幾年,函數(shù)式編程越來越多得受到開發(fā)者的青睞。函數(shù)式編程是一種強(qiáng)調(diào)減少對程序外部狀態(tài)產(chǎn)生改變的方式。因此,...
閱讀 1832·2021-09-22 15:10
閱讀 1367·2021-09-07 09:58
閱讀 2389·2019-08-30 15:44
閱讀 1711·2019-08-26 18:29
閱讀 2115·2019-08-26 13:35
閱讀 828·2019-08-26 13:31
閱讀 776·2019-08-26 11:42
閱讀 1139·2019-08-23 18:39