在前端開發(fā)中,正則表達(dá)式是不可避免的一部分。而正則表達(dá)式中匹配多個(gè)的功能,也是經(jīng)常會(huì)用到的。今天我們就來(lái)了解一下如何使用JavaScript正則表達(dá)式匹配多個(gè)。
首先,我們來(lái)看一下最常見的情況,也就是匹配多個(gè)數(shù)字或多個(gè)字母。例如,我們想要匹配一個(gè)字符串中的所有數(shù)字:
const str = 'hello123world456'; const matchResult = str.match(/\d+/g); console.log(matchResult); // ['123', '456']
上面的代碼中,我們使用了正則表達(dá)式中的字符類“\d”,它代表任意一個(gè)數(shù)字。其中,“+”表示匹配前面的字符類一次或者多次,而“g”標(biāo)識(shí)符則表示匹配整個(gè)字符串中的所有匹配項(xiàng)。最后,我們打印匹配結(jié)果,也就是字符串中所有的數(shù)字。
除了數(shù)字,字母也是經(jīng)常會(huì)被匹配的內(nèi)容之一。例如,我們想要獲取一個(gè)URL中的所有路徑名:
const url = 'https://www.example.com/path/1/and/2'; const matchResult = url.match(/[a-zA-Z]+/g); console.log(matchResult); // ['https', 'www', 'example', 'com', 'path', 'and']
和匹配數(shù)字一樣,上面的代碼中,我們使用了正則表達(dá)式中的字符類來(lái)匹配字母,其中“[a-zA-Z]”表示匹配一個(gè)任意字母,“+”表示匹配前面的字符類一次或者多次,“g”則標(biāo)識(shí)符表示匹配整個(gè)字符串中的所有匹配項(xiàng)。最后,我們打印匹配結(jié)果,也就是URL中所有的路徑名。
除了上面的情況,還有一些比較常見的多個(gè)匹配需求,例如匹配郵件地址和匹配日期。比如,我們想要獲取一個(gè)字符串中的所有郵件地址:
const str = '請(qǐng)發(fā)送郵件至yanghua@example.com或yanghua2@example.com'; const matchResult = str.match(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g); console.log(matchResult); // ['yanghua@example.com', 'yanghua2@example.com]
上面的代碼中,我們使用了一個(gè)比較長(zhǎng)的正則表達(dá)式來(lái)匹配郵件地址。其中,“\b”表示單詞邊界,“[A-Za-z0-9._%+-]”表示匹配一個(gè)字母、數(shù)字、下劃線、點(diǎn)、百分號(hào)、加號(hào)或減號(hào),“@[A-Za-z0-9.-]+”表示匹配一個(gè)“@”符號(hào)和一個(gè)或多個(gè)字母、數(shù)字、點(diǎn)或減號(hào),“\.[A-Z|a-z]{2,}”表示匹配一個(gè)點(diǎn)和至少兩個(gè)字母。最后的“g”標(biāo)識(shí)符則表示匹配整個(gè)字符串中的所有郵件地址。
再比如,我們想要匹配一個(gè)字符串中所有的日期:
const str = '今天是2021年7月9日,而昨天是2021-07-08'; const matchResult = str.match(/\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}/g); console.log(matchResult); // ['2021年7月9日', '2021-07-08']
上面的代碼中,我們使用了正則表達(dá)式中的分組與反向引用,以匹配日期。其中,“\d{4}”表示匹配四個(gè)數(shù)字,也就是年份;“(\-|\/|.)”表示一個(gè)括號(hào)分組,匹配一個(gè)橫線、斜線或點(diǎn);“\d{1,2}”表示匹配一個(gè)或兩個(gè)數(shù)字,也就是月份和日期。而“\1”則表示反向引用前面的括號(hào),也就是匹配到的分隔符。最終的“g”表示標(biāo)識(shí)符表示匹配整個(gè)字符串中所有的日期。
綜上所述,正則表達(dá)式中的多匹配功能,在前端開發(fā)中有著廣泛的應(yīng)用。我們可以使用各種各樣的正則表達(dá)式來(lái)實(shí)現(xiàn)多個(gè)匹配需求,從而更好地滿足業(yè)務(wù)需求。