javascript正則表達(dá)式參數(shù)/g與/i及/gi的使用指南
regularexpression=/pattern/[switch]
這個switch就有三種值 g: 全局匹配 i: 忽略大小寫 gi: 全局匹配 + 忽略大小寫 JScript 語言參考
--------------------------------------------------------------------------------
后向引用 正則表達(dá)式一個最重要的特性就是將匹配成功的模式的某部分進行存儲供以后使用這一能力。請回想一下,對一個正則表達(dá)式模式或部分模式兩邊添加圓括號將導(dǎo)致這部分表達(dá)式存儲到一個臨時緩沖區(qū)中??梢允褂梅遣东@元字符 '?:', '?=', or '?!' 來忽略對這部分正則表達(dá)式的保存。
所捕獲的每個子匹配都按照在正則表達(dá)式模式中從左至右所遇到的內(nèi)容存儲。存儲子匹配的緩沖區(qū)編號從 1 開始,連續(xù)編號直至最大 99 個子表達(dá)式。每個緩沖區(qū)都可以使用 '\n' 訪問,其中 n 為一個標(biāo)識特定緩沖區(qū)的一位或兩位十進制數(shù)。
后向引用一個最簡單,最有用的應(yīng)用是提供了確定文字中連續(xù)出現(xiàn)兩個相同單詞的位置的能力。請看下面的句子: Is is the cost of of gasoline going up up? 根據(jù)所寫內(nèi)容,上面的句子明顯存在單詞多次重復(fù)的問題。如果能有一種方法無需查找每個單詞的重復(fù)現(xiàn)象就能修改該句子就好了。下面的 JScript 正則表達(dá)式使用一個子表達(dá)式就可以實現(xiàn)這一功能。
/\b([a-z]+) \1\b/gi等價的 VBScript 表達(dá)式為:
"\b([a-z]+) \1\b" 在這個示例中,子表達(dá)式就是圓括號之間的每一項。所捕獲的表達(dá)式包括一個或多個字母字符,即由'[a-z]+' 所指定的。該正則表達(dá)式的第二部分是對前面所捕獲的子匹配的引用,也就是由附加表達(dá)式所匹配的第二次出現(xiàn)的單詞。'\1'用來指定第一個子匹配。單詞邊界元字符確保只檢測單獨的單詞。如果不這樣,則諸如 "is issued" 或 "this is" 這樣的短語都會被該表達(dá)式不正確地識別。
在 JScript 表達(dá)式中,正則表達(dá)式后面的全局標(biāo)志 ('g') 表示該表達(dá)式將用來在輸入字符串中查找盡可能多的匹配。大小寫敏感性由表達(dá)式結(jié)束處的大小寫敏感性標(biāo)記 ('i') 指定。多行標(biāo)記指定可能出現(xiàn)在換行符的兩端的潛在匹配。對 VBScript 而言,在表達(dá)式中不能設(shè)置各種標(biāo)記,但必須使用 RegExp 對象的屬性來顯式設(shè)置。
使用上面所示的正則表達(dá)式,下面的 JScript 代碼可以使用子匹配信息,在一個文字字符串中將連續(xù)出現(xiàn)兩次的相同單詞替換為一個相同的單詞:
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"); //用一個單詞替代兩個單詞.
相關(guān)文章
文本框只能輸入數(shù)字的實現(xiàn)方法(兼容IE火狐)
下面小編就為大家?guī)硪黄谋究蛑荒茌斎霐?shù)字的實現(xiàn)方法(兼容IE火狐)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06layui table 復(fù)選框跳頁后再回來保持原來選中的狀態(tài)示例
今天小編就為大家分享一篇layui table 復(fù)選框跳頁后再回來保持原來選中的狀態(tài)示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10javascript中offset、client、scroll的屬性總結(jié)
這篇文章主要介紹了javascript中offset、client、scroll的屬性總結(jié)的相關(guān)資料,需要的朋友可以參考下2015-08-08