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