亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)文章

  • 一文教會你解決js數(shù)字精度丟失問題

    一文教會你解決js數(shù)字精度丟失問題

    在JavaScript中計算兩個十進(jìn)制數(shù)的和,有時候會出現(xiàn)令人驚訝的結(jié)果,相信這個大家也都知道了,下面這篇文章主要給大家介紹了關(guān)于解決js數(shù)字精度丟失問題的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • JS實(shí)現(xiàn)圖片切換效果

    JS實(shí)現(xiàn)圖片切換效果

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)圖片切換效果 ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 深入學(xué)習(xí)JavaScript對象

    深入學(xué)習(xí)JavaScript對象

    今天小編就和大家深入學(xué)習(xí)JavaScript對象,感興趣的小伙伴們可以參考一下,大家一起學(xué)習(xí)。
    2015-10-10
  • 原生JS實(shí)現(xiàn)各種運(yùn)動之復(fù)合運(yùn)動

    原生JS實(shí)現(xiàn)各種運(yùn)動之復(fù)合運(yùn)動

    這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)各種運(yùn)動之復(fù)合運(yùn)動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 原生js 實(shí)現(xiàn)表單驗證功能

    原生js 實(shí)現(xiàn)表單驗證功能

    這篇文章主要介紹了原生js如何實(shí)現(xiàn)表單驗證功能,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2021-02-02
  • JS如何實(shí)現(xiàn)文本框隨文本的長度而增長

    JS如何實(shí)現(xiàn)文本框隨文本的長度而增長

    這篇文章主要介紹了JS如何實(shí)現(xiàn)文本框隨文本的長度而增長的方法,具有一定借鑒價值,需要的朋友可以參考下
    2015-07-07
  • js 獲取屏幕各種寬高的方法(瀏覽器兼容)

    js 獲取屏幕各種寬高的方法(瀏覽器兼容)

    js 獲取屏幕各種寬高的方法(瀏覽器兼容),需要的朋友可以參考一下
    2013-05-05
  • ES6 Object.assign()的用法及其使用

    ES6 Object.assign()的用法及其使用

    這篇文章主要介紹了ES6 Object.assign()的用法及其使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 如何使用js查找數(shù)組中符合條件的元素

    如何使用js查找數(shù)組中符合條件的元素

    這篇文章主要給大家介紹了關(guān)于如何使用js查找數(shù)組中符合條件的元素,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-04-04
  • JS異步文件上傳(兼容IE8+)

    JS異步文件上傳(兼容IE8+)

    本文主要介紹了JS實(shí)現(xiàn)異步文件上傳的相關(guān)資料,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04

最新評論