正則表達(dá)式法褥,又稱(chēng)規(guī)則表達(dá)式。(英語(yǔ):Regular Expression朝刊,在代碼中常簡(jiǎn)寫(xiě)為regex耀里、regexp或RE),計(jì)算機(jī)科學(xué)的一個(gè)概念拾氓。正則表達(dá)式通常被用來(lái)檢索冯挎、替換那些符合某個(gè)模式(規(guī)則)的文本。
正則表達(dá)式的作用: 處理字符串,相當(dāng)于過(guò)濾的性質(zhì), 找到符合自己的字符集;
獲取正則的兩種方式:
字面量的形式: /正則體/修飾符;
字面量的形式無(wú)法拼接;
構(gòu)造函數(shù)的形式: var redRexp(‘’ ’’, 修飾符) 構(gòu)造函數(shù)(可以拼接成正則體);
var str = xxx.value;
/str/g
var reg = regExp(‘str’, g);
元字符:
數(shù)字 \d; 僅限于0 到9
返回小數(shù)
var reg3 = /^\d+\ . \d+$\/
\D 匹配一個(gè)非數(shù)字
\s 匹配任何不可見(jiàn)字符空白符咙鞍,包括空格房官、制表符、換頁(yè)符等等续滋。等價(jià)于[ \f \n \r \t \v] 換行 制表符(tab鍵) 空格(space鍵)
\n 換行
\r 換行(有時(shí)不能用)
\p 制表符
\v 制表符
\S 與 \s作用相反
\b 匹配單詞邊界 兩個(gè)單詞之間用其他符號(hào)隔開(kāi)時(shí)(一般是空格或其他標(biāo)點(diǎn)符號(hào))
\B 與\b作用相反
\w 匹配包括下劃線(xiàn)的任何單詞字符翰守。類(lèi)似但不等價(jià)于“[A-Za-z0-9_ ]”,這里的"單詞"字符使用Unicode字符集
\W 與\w作用相反 可以匹配一個(gè)漢字
var reg4 = /\W+/
console.log(reg4.test((‘返回’)) //返回 true;
起數(shù)量限制作用的元字符
- (0到多次)
?(0或1次)
- (1或多次)
{x,y}x到y(tǒng)的區(qū)間
{x} 代表出現(xiàn)了x次;
\轉(zhuǎn)意
(?=) 向前匹配
(?<=) 向后匹配
. 代表匹配任何字符
- 代表任意數(shù)量
^放在[]外邊是以什么為開(kāi)始的意思 放在[ ]里邊代表非
$ 以什么結(jié)尾的意思
[]集合 集合中的元素只取一個(gè) 多個(gè)元素是或的關(guān)系[0-9]
集合里邊寫(xiě)特殊意義的字符代表他的本意 不可以寫(xiě)\ 會(huì)報(bào)錯(cuò);
reg5 = /\w\d/
代表一個(gè)字符和數(shù)字
reg6 = /([a-z])(\d)/
等價(jià):
等價(jià)是等同于的意思疲酌,表示同樣的功能蜡峰,用不同符號(hào)來(lái)書(shū)寫(xiě)。
?,*,+,\d,\w 都是等價(jià)字符
?等價(jià)于匹配長(zhǎng)度{0,1};
*等價(jià)于匹配長(zhǎng)度{0,} ;
+等價(jià)于匹配長(zhǎng)度{1,};
\d等價(jià)于[0-9];
\D等價(jià)于[^0-9];
\W等價(jià)于[^A-Za-z_0-9];
正則的用法:
1.字符串的replace方法:
字符串.replace(正則體, 新的替換對(duì)象);
2.字符串的match方法:
未找到符合條件的返回null;
如果匹配到了1個(gè) 返回一個(gè)數(shù)組, 第一項(xiàng)是匹配到的字符串
input:返回的是原字符串, index:返回的是對(duì)應(yīng)的下標(biāo)
如果找到多個(gè) 返回的則是找到的所有的滿(mǎn)足條件的字符集組成的數(shù)組;
3字符串的search方法:
返回找到第一個(gè)找到的字符集的下標(biāo);
4正則的test方法:
正則體.test(字符串);
返回布爾值 代表了是否找到目標(biāo)字符串;
滿(mǎn)足正則體的返回true 不滿(mǎn)足的返回false
5正則的exec方法:
正則體.exec(字符串);
沒(méi)有符合正則的條件時(shí) 返回null
找到時(shí),返回一個(gè)數(shù)組,如果匹配到了1個(gè) 返回一個(gè)數(shù)組, 第一項(xiàng)是匹配到的字符串
input:返回的是原字符串, index:返回的是對(duì)應(yīng)的下標(biāo);