javascript正則表達式參數/g與/i及/gi的使用指南
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
導讀 正則表達式:是對字符串操作的一種邏輯公式,用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。 regularexpression=/pattern/[switch] 這個switch就有三種值: g: 全局匹配 i: 忽略大小寫 gi: 全局匹配 + 忽略大小寫 var tmpValue="dsfweweSwerwYwe"; //清空tmpValue中所有的y,不區分大小寫 tmpValue=tmpValue.replace(/y/gi,""); Jscript 語言參考 -------------------------------------------------------------------------------- 后向引用 正則表達式一個最重要的特性就是將匹配成功的模式的某部分進行存儲供以后使用這一能力。請回想一下,對一個正則表達式模式或部分模式兩邊添加圓括號將導致這部分表達式存儲到一個臨時緩沖區中??梢允褂梅遣东@元字符 '?:', '?=', or '?!' 來忽略對這部分正則表達式的保存。 所捕獲的每個子匹配都按照在正則表達式模式中從左至右所遇到的內容存儲。存儲子匹配的緩沖區編號從 1 開始,連續編號直至最大 99 個子表達式。每個緩沖區都可以使用 '\n' 訪問,其中 n 為一個標識特定緩沖區的一位或兩位十進制數。 后向引用一個最簡單,最有用的應用是提供了確定文字中連續出現兩個相同單詞的位置的能力。請看下面的句子: Is is the cost of of gsoline going up up? 根據所寫內容,上面的句子明顯存在單詞多次重復的問題。如果能有一種方法無需查找每個單詞的重復現象就能修改該句子就好了。下面的 Jscript 正則表達式使用一個子表達式就可以實現這一功能。 /\b([a-z]+) \1\b/gi 等價的 VBscript 表達式為: "\b([a-z]+) \1\b" 在這個示例中,子表達式就是圓括號之間的每一項。所捕獲的表達式包括一個或多個字母字符,即由'[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]+) \1\b/gim; //創建正則表達式樣式 var rv = ss.replace(re,"$1"); //用一個單詞替代兩個單詞 該文章在 2023/5/19 12:31:25 編輯過 |
關鍵字查詢
相關文章
正在查詢... |