欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

exec()方法

1、定義和用法

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

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

2、語(yǔ)法

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)檢索指定的值,或者找到一個(gè)或多個(gè)正則表達(dá)式的匹配。

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

2、語(yǔ)法

      string.match(regexp)

3、參數(shù)描述

參數(shù)

描述

regexp

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

4、返回值

類(lèi)型

描述

Array

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

5、使用示例

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

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

②拓展示例

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

var phone="13344445555"; //手機(jī)號(hào)為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á)式無(wú)子表達(dá)式,且定義為非全局匹配時(shí),exec()和match ()執(zhí)行的結(jié)果是一樣,都返回第一個(gè)匹配的字符串內(nèi)容;

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

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

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

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

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

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

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

4、全局匹配不同

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

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

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

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

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

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

最后

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論