使用JS中的exec()方法構(gòu)造正則表達(dá)式驗(yàn)證
正則表達(dá)式,又稱正規(guī)表示法、常規(guī)表示法。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計(jì)算機(jī)科學(xué)的一個(gè)概念。正則表達(dá)式使用單個(gè)字符串來描述、匹配一系列符合某個(gè)句法規(guī)則。在很多文本編輯器里,正則表達(dá)式通常被用來檢索、替換那些符合某個(gè)模式的文本。
一、Javascript中的正則表達(dá)式
在Javascript中,可以使用RegExp對(duì)象構(gòu)造正則表達(dá)。我們需要新建一個(gè)實(shí)例化的RegExp()對(duì)象,可以傳入兩個(gè)參數(shù):第一個(gè)參數(shù)是匹配的模式,第二個(gè)參數(shù)是一個(gè)可選項(xiàng),可以傳入三種參數(shù)。i表示不區(qū)分大小寫,g表示全局匹配,即匹配所有的符合條件的字符串,m表示執(zhí)行多次匹配。實(shí)例如下:
var reg = new RegExp("Hello", "i"); //表示匹配字符串中的Hello字符串,并且不區(qū)分大小寫。
二、使用exec進(jìn)行模式匹配
RegExp中有一個(gè)方法可以進(jìn)行模式匹配并返回結(jié)果:exec()。該方法非常重要,基本是使用js進(jìn)行模式匹配必用的函數(shù)。然而該函數(shù)的返回值有很多人并不清楚,因此在實(shí)際使用的時(shí)候經(jīng)常會(huì)出錯(cuò)。在這里系統(tǒng)的介紹一些exec()的使用方法。
exec()的基本格式為:RegExpObject.exec(string),其中RegExpObject為設(shè)置好的正則匹配對(duì)象,string為待匹配的字符串。如果成功匹配,則返回一個(gè)數(shù)組;如果沒有成功匹配的字符串部分,則返回null。
這里的重點(diǎn)就在于這個(gè)數(shù)組。數(shù)組返回的到底是什么呢?可以看一下下面這個(gè)實(shí)驗(yàn).
var re = new RegExp("[?#&]" + user + "=([^&#]*)", "i")
這段代碼進(jìn)行了一個(gè)url的匹配,可以用來獲得user=后面的參數(shù)部分,那么如果使用一個(gè)url并且用這個(gè)模式進(jìn)行exec操作,結(jié)果會(huì)返回什么呢?比如我們有如下
www.qq.com?user=Tom&psw=123456
exec返回的數(shù)組結(jié)果為:[?user=Tom, Tom]??梢钥吹椒祷?cái)?shù)組的第一個(gè)元素就是整個(gè)的匹配模式所匹配到的字符串,而第二個(gè)匹配到的字符恰好是參數(shù)值。
這是exec匹配返回的規(guī)則:第一個(gè)元素為整個(gè)的匹配字符串,從第二個(gè)參數(shù)開始返回模式中每一個(gè)()所定義的分組所匹配的字符串。
這里面([^&#]*)返回的就是不以&或#開頭的字符串,即后面對(duì)應(yīng)的參數(shù)。
如果我們將定義的模式修改為[?#&]" + (user) + "=([^&#]*),那么exec()后返回的數(shù)組就是[?user=Tom, user, Tom]。
以上所述是小編給大家介紹的使用JS中的exec()方法構(gòu)造正則表達(dá)式驗(yàn)證,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- 使用JS正則表達(dá)式 替換括號(hào),尖括號(hào)等
- JS使用正則表達(dá)式過濾多個(gè)詞語并替換為相同長度星號(hào)的方法
- 淺談JS正則表達(dá)式的RegExp對(duì)象和括號(hào)的使用
- ExtJS4的文本框(textField)使用正則表達(dá)式進(jìn)行驗(yàn)證(Regex)的方法
- JavaScript中的正則表達(dá)式使用及驗(yàn)證qq號(hào)碼的正則
- JS使用正則表達(dá)式除去字符串中重復(fù)字符的方法
- 使用JavaScript正則表達(dá)式如何去掉雙引號(hào)
- Javascript中正則表達(dá)式的使用及基本語法
相關(guān)文章
JavaScript實(shí)現(xiàn)點(diǎn)擊按鈕切換網(wǎng)頁背景色的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)點(diǎn)擊按鈕切換網(wǎng)頁背景色的方法,涉及JavaScript基于鼠標(biāo)事件動(dòng)態(tài)操作頁面元素樣式的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
JavaScript實(shí)現(xiàn)通過鍵盤彈鋼琴的效果實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)通過鍵盤彈鋼琴效果的相關(guān)資料,通過JS代碼實(shí)現(xiàn)了鋼琴鍵盤的交互效果,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
在javaScript中檢測數(shù)據(jù)類型的幾種方式小結(jié)
在用javaScript編程的過程中,我們經(jīng)常會(huì)遇到這樣一個(gè)問題,就是需要檢測一個(gè)數(shù)據(jù)或變量的類型,本篇文章主要介紹了在javaScript中檢測數(shù)據(jù)類型的幾種方式小結(jié),有興趣的可以了解一下。2017-03-03
javascript嚴(yán)格模式詳解(含嚴(yán)格模式與非嚴(yán)格模式的區(qū)別)
這篇文章主要介紹了javascript嚴(yán)格模式詳解(含嚴(yán)格模式與非嚴(yán)格模式的區(qū)別),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
BootStrap注意事項(xiàng)小結(jié)(五)表單
這篇文章主要介紹了BootStrap注意事項(xiàng)小結(jié)(五)表單的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,,需要的朋友可以參考下2017-03-03
uni-app基本的數(shù)據(jù)綁定v-bind,v-for,v-on:click詳解
這篇文章主要介紹了uni-app基本的數(shù)據(jù)綁定v-bind,v-for,v-on:click,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08

