我今天下午上班的時候接到了搜狐的面試通知,面試時間是後天也就是週三上午的十點半,而後週三下午的時候還有58的線上答題。
因此啦,這幾天要抓緊複習的速度,不能拖拖拉拉。今天完成正則表達式,明天就更新css3的知識css
這個時候各大公司的筆試面試都開始了,各位小夥伴一塊兒加油吧!css3
正則的知識很重要,必定要重視哦面試
// 使用字面量的方式 var reg = /\d/g; // 使用構造函數的方式 var reg = new RegExp('\\b','g');
好,解釋一下這兩種方式,一種就是把要寫的正則放在兩個//
之間,其中//
後面的是修飾符
第二種,是經過new一個RegExp,接受兩個參數,第一個是正則的內容。在\b
前面加上了一個\
是對\b
中的\
進行轉義,記住這個是必須的,有特殊的字符都須要轉義。第二個參數是修飾符正則表達式
下面說一下元字符:
元字符的概念:元字符是在正則表達式中有特殊含義的非字母字符數組
\f 換頁符 \n 換行符 \r 回車 \t 製表符 \v 垂直製表符 \/ 一個 / 直接量 \\ 一個 \ 直接量 \. 一個 . 直接量 \* 一個 * 直接量 \ 一個 + 直接量 \? 一個 ? 直接量 \| 一個 | 直接量 \( 一個 ( 直接量 \) 一個 ) 直接量 \[ 一個 [ 直接量 \] 一個 ] 直接量 \{ 一個 { 直接量 \} 一個 } 直接量
咱們能夠經過[]
來表示一個類,匹配的時候匹配到[]
其中一個便可。
例如[0-9]
表示數字0到9,[a-zA-Z]
表示匹配全部的大小寫字母。
同時咱們能夠在[]
中加入^
表示一個反向類,例如[^9]
表示除了9以外的全部字符函數
. 表示除了回車符和換行符以外的全部字符,等同於 [^\r\n] \d 表示數字字符,等同於[0-9] \D 表示非數字字符,等同於[^0-9] \s 表示空白符,等同於[\t\n\x\f\r] \S 表示非空白符,等同於[^\t\n\x\f\r] \w 表示單詞字符(字母數字下劃線),等同於[a-zA-Z_0-9] \W 表示非單詞字符,等同於[^a-zA-Z_0-9]
^ 表示以XXX開始 $ 表示以XXX結束 \b 單詞邊界 \B 非單詞邊界
? 出現零次或一次(最多出現一次) + 出現一次或屢次(至少出現一次) * 出現零次或屢次(任意次) {n} 出現n次 {n,m} 出現n到m次 {n,} 至少出現n次
1.正則表達式默認是貪婪模式,也就是說,正則匹配是會盡量按照量詞的上線多匹配
2.想要關閉正則表達式的貪婪模式,只須要這麼寫/\d{1,8}?/
加上一個?
便可。url
能夠用()
進行分組,能夠Byr(on|Ca)sper
進行或,或者是(/d/w12){9}
進行轉化
分組的內容從前到後,分別分組爲$1,$2,$3...
code
(?: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正則表達式專題,視頻詳細透徹,加油!