javascript正則表達(dá)式參數(shù)/g與/i及/gi的使用指南
regularexpression=/pattern/[switch]
這個(gè)switch就有三種值 g: 全局匹配 i: 忽略大小寫(xiě) gi: 全局匹配 + 忽略大小寫(xiě) JScript 語(yǔ)言參考
--------------------------------------------------------------------------------
后向引用 正則表達(dá)式一個(gè)最重要的特性就是將匹配成功的模式的某部分進(jìn)行存儲(chǔ)供以后使用這一能力。請(qǐng)回想一下,對(duì)一個(gè)正則表達(dá)式模式或部分模式兩邊添加圓括號(hào)將導(dǎo)致這部分表達(dá)式存儲(chǔ)到一個(gè)臨時(shí)緩沖區(qū)中。可以使用非捕獲元字符 '?:', '?=', or '?!' 來(lái)忽略對(duì)這部分正則表達(dá)式的保存。
所捕獲的每個(gè)子匹配都按照在正則表達(dá)式模式中從左至右所遇到的內(nèi)容存儲(chǔ)。存儲(chǔ)子匹配的緩沖區(qū)編號(hào)從 1 開(kāi)始,連續(xù)編號(hào)直至最大 99 個(gè)子表達(dá)式。每個(gè)緩沖區(qū)都可以使用 '\n' 訪問(wèn),其中 n 為一個(gè)標(biāo)識(shí)特定緩沖區(qū)的一位或兩位十進(jìn)制數(shù)。
后向引用一個(gè)最簡(jiǎn)單,最有用的應(yīng)用是提供了確定文字中連續(xù)出現(xiàn)兩個(gè)相同單詞的位置的能力。請(qǐng)看下面的句子: Is is the cost of of gasoline going up up? 根據(jù)所寫(xiě)內(nèi)容,上面的句子明顯存在單詞多次重復(fù)的問(wèn)題。如果能有一種方法無(wú)需查找每個(gè)單詞的重復(fù)現(xiàn)象就能修改該句子就好了。下面的 JScript 正則表達(dá)式使用一個(gè)子表達(dá)式就可以實(shí)現(xiàn)這一功能。
/\b([a-z]+) \1\b/gi等價(jià)的 VBScript 表達(dá)式為:
"\b([a-z]+) \1\b" 在這個(gè)示例中,子表達(dá)式就是圓括號(hào)之間的每一項(xiàng)。所捕獲的表達(dá)式包括一個(gè)或多個(gè)字母字符,即由'[a-z]+' 所指定的。該正則表達(dá)式的第二部分是對(duì)前面所捕獲的子匹配的引用,也就是由附加表達(dá)式所匹配的第二次出現(xiàn)的單詞。'\1'用來(lái)指定第一個(gè)子匹配。單詞邊界元字符確保只檢測(cè)單獨(dú)的單詞。如果不這樣,則諸如 "is issued" 或 "this is" 這樣的短語(yǔ)都會(huì)被該表達(dá)式不正確地識(shí)別。
在 JScript 表達(dá)式中,正則表達(dá)式后面的全局標(biāo)志 ('g') 表示該表達(dá)式將用來(lái)在輸入字符串中查找盡可能多的匹配。大小寫(xiě)敏感性由表達(dá)式結(jié)束處的大小寫(xiě)敏感性標(biāo)記 ('i') 指定。多行標(biāo)記指定可能出現(xiàn)在換行符的兩端的潛在匹配。對(duì) VBScript 而言,在表達(dá)式中不能設(shè)置各種標(biāo)記,但必須使用 RegExp 對(duì)象的屬性來(lái)顯式設(shè)置。
使用上面所示的正則表達(dá)式,下面的 JScript 代碼可以使用子匹配信息,在一個(gè)文字字符串中將連續(xù)出現(xiàn)兩次的相同單詞替換為一個(gè)相同的單詞:
var ss = "Is is the cost of of gasoline going up up?.\n"; var re = /\b([a-z]+) \1\b/gim; //創(chuàng)建正則表達(dá)式樣式.var rv = ss.replace(re,"$1"); //用一個(gè)單詞替代兩個(gè)單詞.
相關(guān)文章
微信小程序swiper組件用法實(shí)例分析【附源碼下載】
這篇文章主要介紹了微信小程序swiper組件用法,結(jié)合實(shí)例形式分析了微信小程序中swiper組件的功能、使用方法,并附帶完整源碼供讀者下載參考,需要的朋友可以參考下2017-12-12
json屬性名為什么要雙引號(hào)(個(gè)人猜測(cè))
json屬性名為什么要雙引號(hào)?更加規(guī)范,利于解析、避免class等關(guān)鍵字引起的不兼容問(wèn)題,需要的朋友可以參考下2014-07-07
JavaScript代碼模擬鼠標(biāo)自動(dòng)點(diǎn)擊事件示例
這篇文章主要介紹了JavaScript代碼模擬鼠標(biāo)自動(dòng)點(diǎn)擊事件示例,文章通過(guò)示例代碼和運(yùn)行效果圖介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Bootstrap輪播插件中圖片變形的終極解決方案 使用jqthumb.js
這篇文章主要介紹了Bootstrap輪播插件中圖片變形的終極解決方案,使用jqthumb.js,感興趣的小伙伴們可以參考一下2016-07-07
Javascript循環(huán)刪除數(shù)組中元素的幾種方法示例
這篇文章主要給大家介紹了關(guān)于Javascript循環(huán)刪除數(shù)組中元素的幾種方法,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05
Uniapp?實(shí)現(xiàn)全民分銷功能原理解析
這篇文章主要介紹了Uniapp?實(shí)現(xiàn)全民分銷功能,本篇文章主要介紹全民分銷功能實(shí)現(xiàn)原理,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06

