最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS前端開發(fā)之exec()和match()的對比使用

 更新時間:2022年09月29日 11:24:32   作者:三掌柜666  
match()方法可在字符串內(nèi)檢索指定的值,或找到一個或多個正則表達(dá)式的匹配,下面這篇文章主要給大家介紹了關(guān)于JS前端開發(fā)之exec()和match()的對比使用的相關(guān)資料,需要的朋友可以參考下

前言

在前端開發(fā)過程中,關(guān)于正則表達(dá)式的相關(guān)使用想必開發(fā)者并不陌生,而且也算是一個比較常用的知識點(diǎn),尤其是在郵箱、手機(jī)號判斷校驗的時候是必備知識點(diǎn),但是一般情況下遇到這種校驗場景就是去找現(xiàn)有的正則表達(dá)式模板直接使用,因為正則表達(dá)式在JS中使用的場景比較固定,使用頻率不高,一般不會去深究正則表達(dá)式的實(shí)現(xiàn)原理,二班的情況(精通正則表達(dá)式的大佬)除外。那么本篇博文就來分享一下在JS中關(guān)于正則表達(dá)式的使用相關(guān)知識點(diǎn):exec()和match(),方便查閱使用。

exec()方法

1、定義和用法

exec()方法主要用來檢索字符串中的正則表達(dá)式的匹配。

注意:如果字符串中有匹配的值則返回該匹配值,否則返回null。

2、語法

RegExpObject.exec(string)

3、參數(shù)描述

參數(shù)

描述

string

必需的參數(shù)。要匹配的字符串

4、使用示例

這里的示例以在字符串中全局搜索 "World" 和 "JS" ,具體代碼如下所示:

var str="Hello World!";
//查找"World"
var patt=/World/g;
var result=patt.exec(str);
console.log("result====>",result); //輸出結(jié)果:World
 
//查找 "JS"
patt=/JS/g;
result=patt.exec(str);
console.log("result====>",result); //輸出結(jié)果:null

match()方法

1、定義和用法

match() 方法主要是在字符串內(nèi)檢索指定的值,或者找到一個或多個正則表達(dá)式的匹配。

注意:match() 方法將檢索字符串 String Object,以便找到一個或多個與 regexp 匹配的文本內(nèi)容,該方法的行為在很大程度上依賴于 regexp 是否具有標(biāo)志 g。如果 regexp 沒有標(biāo)志 g,那么 match() 方法就只能在 stringObject 中執(zhí)行一次匹配。如果沒有找到任何匹配的文本, match() 將返回 null。否則,它將返回一個數(shù)組,其中存放了與它找到的匹配文本有關(guān)的信息內(nèi)容。

2、語法

      string.match(regexp)

3、參數(shù)描述

參數(shù)

描述

regexp

必需的參數(shù)。規(guī)定要匹配的模式的 RegExp 對象。如果該參數(shù)不是 RegExp 對象,則需要首先把它傳遞給 RegExp 構(gòu)造函數(shù),將其轉(zhuǎn)換為 RegExp 對象。

4、返回值

類型

描述

Array

存放匹配結(jié)果的數(shù)組。該數(shù)組的內(nèi)容依賴于 regexp 是否具有全局標(biāo)志 g。 如果沒找到匹配結(jié)果就返回 null 。

5、使用示例

①這里的示例以在字符串中全局查找 "good" ,并且不區(qū)分大小寫,具體代碼如下所示:

var str="Good good study, day day up!";
var result=str.match(/good/gi);
console.log("result====>",result); //輸出結(jié)果:Good,good

②拓展示例

把11位手機(jī)號以3、4、4個數(shù)分割為三份,具體代碼如下所示:

var phone="13344445555"; //手機(jī)號為13344445555
var result = phone.match(/^(\d{3})(\d{4})(\d{4})$/);
console.log("result====>",result); //輸出結(jié)果:133,4444,5555

延伸:exec()和match ()最直觀的比較

1、exec()和match ()最直觀的比較,具體如下所示:

- | -

—|—

Q | q

2、exec()和match ()的本質(zhì)區(qū)別

若正則表達(dá)式無子表達(dá)式,且定義為非全局匹配時,exec()和match ()執(zhí)行的結(jié)果是一樣,都返回第一個匹配的字符串內(nèi)容;

若正則表達(dá)式無子表達(dá)式,且定義為全局匹配時,exec()和match ()執(zhí)行做多處匹配內(nèi)容,只有match ()返回的是多個元素數(shù)組;

若正則表達(dá)式有子表達(dá)式,且定義為非全局匹配時,exec()和match ()執(zhí)行的結(jié)果是一樣的;

若正則表達(dá)式有子表達(dá)式,且定義為全局匹配時,exec()和match ()執(zhí)行的結(jié)果不一樣,其中match ()將忽略子表達(dá)式,只查找全匹配正則表達(dá)式并返回所有的內(nèi)容;

最后,exec()與全局是否定義無太大關(guān)系,但match ()則是與全局相關(guān)聯(lián)的,當(dāng)定義為非全局的時候,exec()和match ()二者執(zhí)行的結(jié)果是一樣的。

3、調(diào)用方式不同

exec()是正則表達(dá)式對象的函數(shù),參數(shù)為字符串;

match ()是字符串的函數(shù),參數(shù)為正則表達(dá)式對象。

4、全局匹配不同

在做全局匹配時,exec()僅匹配單次匹配上的內(nèi)容,而match ()會返回所有匹配上的內(nèi)容的數(shù)組;

在做全局匹配且進(jìn)行多次匹配時,exec()會從上次匹配結(jié)束的下一位開始匹配,返回本次匹配上的內(nèi)容,直至無可以匹配的內(nèi)容,最后返回null;

也就是說,在非全局的正則匹配下,exec()和match ()的返回結(jié)果是一致的,但在全局匹配的情況下,match ()返回結(jié)果集數(shù)組,exec()返回每一項匹配結(jié)果的詳細(xì)信息,但如果需要所有的返回結(jié)果,則需要循環(huán)調(diào)用該方法。

5、對參數(shù) g 的解釋不同

在有g(shù)的時候,exec()每次執(zhí)行會呈現(xiàn)出遞進(jìn)的形式,否則每次執(zhí)行的結(jié)果都是一樣的;有捕獲組的時候,總會返回當(dāng)前匹配項的捕獲組。

在有g(shù)的時候,match ()執(zhí)行全局檢索,會返回所有匹配項,沒有g(shù)的時候match ()只會返回第一個匹配項;有捕獲組的情況下,match ()只有在沒有g(shù)的情況下,才會返回第一個匹配項的捕獲組。

最后

通過上面介紹的JS中exec和match的對比使用總結(jié),是不是徹底掌握了相關(guān)知識點(diǎn)以及使用原理?這個知識點(diǎn)很重要,只要完全掌握其原理之后不管以后在前端開發(fā)過程中有關(guān)exec和match的使用,都能輕松應(yīng)對,這里不再過多贅述重要性。

到此這篇關(guān)于JS前端開發(fā)之exec()和match()對比使用的文章就介紹到這了,更多相關(guān)JS exec()和match()的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

嘉定区| 阳谷县| 罗源县| 荥阳市| 玉山县| 东乡族自治县| 沁源县| 弋阳县| 梁平县| 喀喇| 泌阳县| 呈贡县| 泰州市| 盘锦市| 若羌县| 景宁| 新田县| 怀宁县| 汤原县| 泊头市| 称多县| 常山县| 彭泽县| 丘北县| 清丰县| 紫云| 哈尔滨市| 黎城县| 太和县| 甘洛县| 莫力| 长沙市| 新竹市| 厦门市| 连平县| 桑日县| 延庆县| 霍林郭勒市| 奉节县| 白朗县| 攀枝花市|