摘要:反向引用當(dāng)一個(gè)正則表達(dá)式被分組之后,每一個(gè)組將自動(dòng)被賦予一個(gè)組號(hào),該組號(hào)可以代表該組的表達(dá)式。對(duì)象方法接受一個(gè)字符串參數(shù),如果正則表達(dá)式與指定的字符串匹配返回否則返回同樣接受一個(gè)字符串為參數(shù),返回一個(gè)數(shù)組,其中存放匹配的結(jié)果。
創(chuàng)建方式
字面量創(chuàng)建方式
var reg = /pattern/flags;
實(shí)例創(chuàng)建方式
var reg = new RegExp(pattern, flags);
字面量創(chuàng)建方式和構(gòu)造函數(shù)創(chuàng)建方式的區(qū)別:
1.字面量創(chuàng)建方式不能進(jìn)行字符串拼接,實(shí)例創(chuàng)建方式可以
var regParam = "cm"; var reg1 = new RegExp(regParam+"1"); var reg2 = /regParam/; console.log(reg1); // /cm1/ console.log(reg2); // /regParam/
2.字面量創(chuàng)建方式特殊含義的字符不需要轉(zhuǎn)義,實(shí)例創(chuàng)建方式需要轉(zhuǎn)義
var reg1 = new RegExp("d"); // /d/ var reg2 = new RegExp("d") // /d/ var reg3 = /d/; // /d/修飾符
i ignoreCase 忽略大小寫(xiě) g global 全局匹配 m multiline 多行匹配
RegExp 對(duì)象屬性:
let reg = /abc/igm; reg.global //true reg.ignoreCase //true reg.multiline //true元字符 位置元字符
^ 匹配字符串的開(kāi)始 $ 匹配字符串的結(jié)束 匹配單詞的開(kāi)始或結(jié)束 B 匹配非單詞邊界 G 上一個(gè)匹配的結(jié)尾(本次匹配開(kāi)始) A 字符串開(kāi)頭(類(lèi)似^,但不受處理多行選項(xiàng)的影響) 字符串結(jié)尾或行尾(不受處理多行選項(xiàng)的影響) z 字符串結(jié)尾(類(lèi)似$,但不受處理多行選項(xiàng)的影響)基本元字符
在非特殊字符之前的反斜杠表示下一個(gè)字符是特殊的 | 邏輯或操作符 [] 定義一個(gè)字符集合,匹配字符集合中的一個(gè)字符,在字符集合里面像 .,這些字符都表示其本身 [^] 對(duì)上面一個(gè)集合取非 - 定義一個(gè)區(qū)間,例如[A-Z],其首尾字符在 ASCII 字符集里面 () 分組,將相關(guān)的元素歸攏,構(gòu)成單個(gè)元素;多選結(jié)構(gòu),(...|...),規(guī)定可能出現(xiàn)的多個(gè)子表達(dá)式;引用分組,存儲(chǔ)子表達(dá)式匹配文本,供之后引用。特殊元字符
. 匹配除了換行符之外的任何單個(gè)字符 d 0~9任意一個(gè)數(shù)字 D 非0~9之間的任意字符 w 匹配包括下劃線的任何單詞字符 W 匹配任何非單詞字符 S 非空字符 s 不可見(jiàn)字符,如空格、回車(chē)、制表符
a|b a或者b任意一個(gè) [abc] a或b或c任意一個(gè) [^abc] 除了ac之外的 [a-z] 表示a到z中任意一個(gè)字母 [0-9]等價(jià)于d [^a-z]量詞
* 重復(fù)零次或更多次 + 重復(fù)一次或更多次 ? 重復(fù)零次或一次 {n} 重復(fù)n次 {n,} 重復(fù)n次或更多次 {n,m} 重復(fù)n到m次字符類(lèi)
Tab 換行符 回車(chē)符 f 換頁(yè)符 e Escape貪婪與非貪婪模式
貪婪匹配: 正則表達(dá)式一般趨向于最大長(zhǎng)度匹配,也就是所謂的貪婪匹配
非貪婪匹配:就是匹配到結(jié)果就好,最少的匹配字符
默認(rèn)是貪婪模式;在量詞后面直接加上一個(gè)問(wèn)號(hào)?就是非貪婪模式。反向引用
當(dāng)一個(gè)正則表達(dá)式被分組之后,每一個(gè)組將自動(dòng)被賦予一個(gè)組號(hào),該組號(hào)可以代表該組的表達(dá)式。其中組號(hào)的編制規(guī)則為:從左到右、以分組的左括號(hào)“(”為標(biāo)識(shí),第一個(gè)分組的組號(hào)為1,第二個(gè)分組的組號(hào)為2,依此類(lèi)推。
“ umber”中的number就是組號(hào) regex=(abc)d1可以匹配字符串a(chǎn)bcdabc,即1表示把獲取到的第一組再匹配一次,如下: let regg = /(abc)d1/; "abcabcdbc".match(regg); //["abcdabc", "abc", index: 3, input: "abcabcdabc", groups: undefined]預(yù)搜索(零寬斷言)
預(yù)搜索,又叫零寬斷言,又叫環(huán)視,它是對(duì)位置的匹配,與定位字符(邊界字符)類(lèi)似。
(?=pattern) 斷言此位置的后面能匹配表達(dá)式pattern (?<=pattern) 斷言此位置的前面能匹配表達(dá)式pattern (?!pattern) 斷言此位置的后面不能匹配表達(dá)式pattern (? RegExp 對(duì)象屬性lastIndex 一個(gè)整數(shù),標(biāo)示開(kāi)始下一次匹配的字符位置。 source 正則表達(dá)式的源文本。RegExp 對(duì)象方法 testtest接受一個(gè)字符串參數(shù),如果正則表達(dá)式與指定的字符串匹配返回 true 否則返回 false
let reg = /^Hello/ reg.test("Hello World") // => true reg.test("Say Hello") // => falseexecexec同樣接受一個(gè)字符串為參數(shù),返回一個(gè)數(shù)組,其中存放匹配的結(jié)果。如果未找到匹配,則返回值為 null。
let reg = /([a-z])d+/ let str = "a233" let result = reg.exec(str) // ["a233", "a", index: 0, input: "a233"] // 0:"a233" 表示我們捕獲到的字符串 // 1:"a" 表示我們捕獲到的分組字符串 // index:0 表示捕獲開(kāi)始位置的索引 // input 表示原有的字符串
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/100650.html
摘要:系列種優(yōu)化頁(yè)面加載速度的方法隨筆分類(lèi)中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁(yè)性能管理詳解離線緩存簡(jiǎn)介系列編寫(xiě)高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問(wèn)性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁(yè)面加載速度的方法 隨筆分類(lèi) - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁(yè)性能管理詳解 HTML5 ...
摘要:系列種優(yōu)化頁(yè)面加載速度的方法隨筆分類(lèi)中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁(yè)性能管理詳解離線緩存簡(jiǎn)介系列編寫(xiě)高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問(wèn)性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁(yè)面加載速度的方法 隨筆分類(lèi) - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁(yè)性能管理詳解 HTML5 ...
摘要:本文內(nèi)容共正則表達(dá)式火拼系列正則表達(dá)式回溯法原理學(xué)習(xí)正則表達(dá)式,是需要懂點(diǎn)兒匹配原理的。正則表達(dá)式迷你書(shū)問(wèn)世了讓幫你生成和解析參數(shù)字符串最全正則表達(dá)式總結(jié)驗(yàn)證號(hào)手機(jī)號(hào)中文郵編身份證地址等是正則表達(dá)式的縮寫(xiě),作用是對(duì)字符串執(zhí)行模式匹配。 JS 的正則表達(dá)式 正則表達(dá)式 一種幾乎可以在所有的程序設(shè)計(jì)語(yǔ)言里和所有的計(jì)算機(jī)平臺(tái)上使用的文字處理工具。它可以用來(lái)查找特定的信息(搜索),也可以用來(lái)查...
摘要:函數(shù)式編程前端掘金引言面向?qū)ο缶幊桃恢币詠?lái)都是中的主導(dǎo)范式。函數(shù)式編程是一種強(qiáng)調(diào)減少對(duì)程序外部狀態(tài)產(chǎn)生改變的方式。 JavaScript 函數(shù)式編程 - 前端 - 掘金引言 面向?qū)ο缶幊桃恢币詠?lái)都是JavaScript中的主導(dǎo)范式。JavaScript作為一門(mén)多范式編程語(yǔ)言,然而,近幾年,函數(shù)式編程越來(lái)越多得受到開(kāi)發(fā)者的青睞。函數(shù)式編程是一種強(qiáng)調(diào)減少對(duì)程序外部狀態(tài)產(chǎn)生改變的方式。因此,...
閱讀 2343·2021-11-23 09:51
閱讀 1146·2021-11-22 13:52
閱讀 3620·2021-11-10 11:35
閱讀 1198·2021-10-25 09:47
閱讀 3005·2021-09-07 09:58
閱讀 1068·2019-08-30 15:54
閱讀 2825·2019-08-29 14:21
閱讀 3036·2019-08-29 12:20