首頁 > web前端 > js教程 > javascript正規表示式參數/g與/i及/gi的使用指南_javascript技巧

javascript正規表示式參數/g與/i及/gi的使用指南_javascript技巧

WBOY
發布: 2016-05-16 16:38:33
原創
1278 人瀏覽過

regularexpression=/pattern/[switch]

這個switch就有三種值 g: 全域匹配 i: 忽略大小寫 gi: 全域匹配 忽略大小寫 JScript 語言參考

----------------------------------------------- ---------------------------------

  後向引用 正規表示式一個最重要的特性就是將匹配成功的模式的某部分進行儲存以供日後使用這一能力。請回想一下,對一個正規表示式模式或部分模式兩邊添加圓括號將導致這部分錶達式儲存到一個臨時緩衝區中。可以使用非捕獲元字元 '?:', '?=', or '?!' 來忽略對這部分正規表示式的保存。

  所捕捉的每個子匹配都按照在正規表示式模式中從左至右所遇到的內容儲存。儲存子符合的緩衝區編號從 1 開始,連續編號直到最大 99 個子運算式。每個緩衝區都可以使用 'n' 訪問,其中 n 為一個標識特定緩衝區的一位或兩位十進制數。

  後向引用一個最簡單,最有用的應用是提供了確定文字中連續出現兩個相同單字的位置的能力。請看下面的句子: Is is the cost of of gasoline going up up? 根據所寫內容,上面的句子明顯存在單字多次重複的問題。如果能有一種方法無需查找每個單字的重複現象就能修改該句子就好了。下面的 JScript 正規表示式使用子表達式就可以實現這項功能。

/b([a-z] ) 1b/gi等價的 VBScript 表達式為:

"b([a-z] ) 1b"  在這個範例中,子運算式就是圓括號之間的每一項。所捕獲的表達式包括一個或多個字母字符,即由'[a-z] ' 所指定的。這個正規表示式的第二部分是對前面所捕獲的子匹配的引用,也就是由附加表達式所匹配的第二次出現的單字。 '1'用來指定第一個子符合。單字邊界元字元確保只偵測單獨的單字。如果不這樣,則諸如 "is issued" 或 "this is" 這樣的短語都會被該表達式不正確地識別。

  在 JScript 表達式中,正規表示式後面的全域標誌 ('g') 表示該表達式將用來在輸入字串中尋找盡可能多的匹配。大小寫敏感度由表達式結束處的大小寫敏感度標記 ('i') 指定。多行標記指定可能出現在換行符的兩端的潛在匹配。對 VBScript 而言,在表達式中不能設定各種標記,但必須使用 RegExp 物件的屬性來明確設定。   

  使用上面所示的正則表達式,下面的 JScript 代碼可以使用子匹配信息,在一個文字字符串中將連續出現兩次的相同單詞替換為一個相同的單詞:

var ss = "Is is the cost of of gasoline going up up?.n"; var re = /b([a-z] ) 1b/gim; //建立正規表示式樣式.var rv = ss.replace (re,"$1"); //用一個字取代兩個字.

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板