一棒仍、常用法
1芍躏、替換文本,可以在文檔中使用一個(gè)正則表達(dá)式來標(biāo)識(shí)特定文字降狠,然后可以全部將其刪除,或者替換為別的文字 庇楞。例如屏蔽一些罵人的特定文字等榜配。
2、校驗(yàn)數(shù)據(jù)合法有效性吕晌,例如輸入用戶名蛋褥、密碼、電話號(hào)碼等數(shù)據(jù)時(shí)睛驳,對(duì)其檢測烙心,看是否符合輸入要求膜廊。
3、基于模式匹配從字符串中提取子字符串淫茵。
二爪瓜、工作原理
通配符技術(shù)——計(jì)算機(jī)查找文件時(shí)常用。
三匙瘪、js中的正則寫法
1铆铆、js內(nèi)置對(duì)象
var reg = new RegExp("a","i"); //RegExp-js內(nèi)置對(duì)象;參數(shù)1-正則內(nèi)容丹喻,具體規(guī)則薄货;參數(shù)2-標(biāo)志
2、直接量
var re = /a/i; //正則表達(dá)式的直接量
四碍论、特殊符號(hào)
1谅猾、特殊符號(hào)包括:
! $ ^ * + = | . ? \ / ( ) [ ] { }
2、一些有特殊含義的字符鳍悠。需要匹配特殊符號(hào)税娜,需要用反斜杠(\)進(jìn)行轉(zhuǎn)譯。
var re = /*/i; //匹配所有字符
var re = /\*/i; //對(duì)(*)進(jìn)行了轉(zhuǎn)譯贼涩,匹配(*)
五巧涧、字符類
1、匹配一類字符遥倦。
2谤绳、內(nèi)容:
\w ——ASCII單字符 [a-zA-Z0-9_]
\W ——ASCII單字符以外的字符
\s ——Unicode空白符,即空格
\S ——Unicode空白符之外的字符
\d ——數(shù)字 [0-9]
\D ——數(shù)字以外的字符
[...] ——匹配方括號(hào)中的所有字符
[^...] ——匹配非方括號(hào)中的所有字符
六袒哥、重復(fù)類
{n} ——匹配前一項(xiàng)n次(連續(xù))
{n,} ——匹配前一項(xiàng)至少n次缩筛,至多不限
{n,m} ——匹配前前一項(xiàng)至少n次,至多m次
+ ——匹配前一項(xiàng)一次或多次(至少一次)堡称,等價(jià)于{1,}瞎抛,例如,'zo+' 能匹配 "zo" 以及 "zoo"却紧,但不能匹配 "z"桐臊。
? ——匹配前一項(xiàng)0次或1次,等價(jià)于{0,1}晓殊,例如断凶,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 巫俺、 "doxy" 中的 "do" 认烁。
* ——匹配前一項(xiàng)0次或多次,等價(jià)于{0,},例如却嗡,zo* 能匹配 "z" 以及 "zoo"舶沛。
七、選擇符
| ——兩項(xiàng)之間的選擇窗价,例如如庭,a|b,匹配 a 或 b 字符舌镶。
八柱彻、定位符
^ ——匹配字符串的開頭。例如餐胀,^a哟楷,a要出現(xiàn)在字符串的開頭。
$ ——匹配字符串的結(jié)尾否灾。例如卖擅,a$,a要出現(xiàn)在字符串的結(jié)尾墨技。
\b ——匹配一個(gè)單詞的邊界惩阶。
\B ——匹配一個(gè)非單詞的邊界。
九扣汪、分組
(...) ——將幾個(gè)項(xiàng)目組合成一個(gè)單元断楷。
(?...) ——不記憶與該組所匹配的內(nèi)容。
十崭别、標(biāo)志
i ——不區(qū)分大小寫冬筒。
g ——全局匹配茅主,即所有字符串舞痰,而非在發(fā)現(xiàn)第一個(gè)匹配項(xiàng)時(shí)立即停止。
m ——多行匹配诀姚。
十一响牛、正則表達(dá)式對(duì)象的方法
1、reg.exec(str)
執(zhí)行匹配赫段,返回一個(gè)數(shù)組呀打。
2、reg.test(str)
測試匹配糯笙,返回一個(gè)布爾值(常用)贬丛。
十二、unicode編碼常用區(qū)間
\u4e00-\u9fa5
中文炬丸。
\x00-\xff
單字節(jié),即[^\x00-\xff]
為雙字節(jié),js不區(qū)分單字節(jié)和雙字節(jié)稠炬,str.length把所有字節(jié)識(shí)別為單字節(jié)焕阿。所以判斷字符串長度時(shí)要先把雙字節(jié)替換成兩個(gè)字節(jié)后再取長度做判斷:return str.replace(/[^\x00-\xff]/g,'xx').length
。