javascript正則表達(dá)式參數(shù)/g與/i及/gi的使用指南
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
導(dǎo)讀 正則表達(dá)式:是對(duì)字符串操作的一種邏輯公式,用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來表達(dá)對(duì)字符串的一種過濾邏輯。 regularexpression=/pattern/[switch] 這個(gè)switch就有三種值: g: 全局匹配 i: 忽略大小寫 gi: 全局匹配 + 忽略大小寫 var tmpValue="dsfweweSwerwYwe"; //清空tmpValue中所有的y,不區(qū)分大小寫 tmpValue=tmpValue.replace(/y/gi,""); Jscript 語言參考 -------------------------------------------------------------------------------- 后向引用 正則表達(dá)式一個(gè)最重要的特性就是將匹配成功的模式的某部分進(jìn)行存儲(chǔ)供以后使用這一能力。請(qǐng)回想一下,對(duì)一個(gè)正則表達(dá)式模式或部分模式兩邊添加圓括號(hào)將導(dǎo)致這部分表達(dá)式存儲(chǔ)到一個(gè)臨時(shí)緩沖區(qū)中。可以使用非捕獲元字符 '?:', '?=', or '?!' 來忽略對(duì)這部分正則表達(dá)式的保存。 所捕獲的每個(gè)子匹配都按照在正則表達(dá)式模式中從左至右所遇到的內(nèi)容存儲(chǔ)。存儲(chǔ)子匹配的緩沖區(qū)編號(hào)從 1 開始,連續(xù)編號(hào)直至最大 99 個(gè)子表達(dá)式。每個(gè)緩沖區(qū)都可以使用 '\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 gsoline going up up? 根據(jù)所寫內(nèi)容,上面的句子明顯存在單詞多次重復(fù)的問題。如果能有一種方法無需查找每個(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'用來指定第一個(gè)子匹配。單詞邊界元字符確保只檢測(cè)單獨(dú)的單詞。如果不這樣,則諸如 "is issued" 或 "this is" 這樣的短語都會(huì)被該表達(dá)式不正確地識(shí)別。 在 Jscript 表達(dá)式中,正則表達(dá)式后面的全局標(biāo)志 ('g') 表示該表達(dá)式將用來在輸入字符串中查找盡可能多的匹配。大小寫敏感性由表達(dá)式結(jié)束處的大小寫敏感性標(biāo)記 ('i') 指定。多行標(biāo)記指定可能出現(xiàn)在換行符的兩端的潛在匹配。對(duì) VBscript 而言,在表達(dá)式中不能設(shè)置各種標(biāo)記,但必須使用 RegExp 對(duì)象的屬性來顯式設(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è)單詞 該文章在 2023/5/19 12:31:25 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |