--- title: 使用標誌的進階搜尋 slug: >- conflicting/Web/JavaScript/Guide/Regular_Expressions_38b32725e0e3217a5542b1b4ee122407 translation_of: Web/JavaScript/Guide/Regular_Expressions translation_of_original: >- Web/JavaScript/Guide/Obsolete_Pages/Working_with_Regular_Expressions/Advanced_Searching_With_Flags original_slug: Web/JavaScript/Obsolete_Pages/Obsolete_Pages/Obsolete_Pages/正規表達式的運用/使用標誌的進階搜尋 ---
正規表達式有四個選用的標誌,這些標誌可用於全域或不分大小寫等的搜尋。若要指明為全域搜尋,就使用 g
標誌。若要指明為區分大小寫來搜尋,就使用 i
標誌。若要指明為在多行中搜尋,就使用 m
標誌。若要進行“定點”搜尋,也就是以目標字串的目前位置為開始點來搜尋,那就使用 y
標誌。這些標誌可以單獨或不分順序混合使用,並作為正規表達式的一部分。
{{ Fx_minversion_note(3, "Firefox 3 新增了對 y
標誌的支援。如果在目標字串的目前位置上比對不成功,y
標誌就會失敗。") }}
要在正規表達式中包含標誌,使用以下語法︰
re = /pattern/flags re = new RegExp("pattern", ["flags"])
注意,標誌也是正規表達式整體的一部分。之後就不能新增或移除標誌。
舉例來說,re = /\w+\s/g
建立了可尋找 1 個以上的字元並且後接空白的正規表達式,並找出整個字串的組合部分。
<script type="text/javascript"> re = /\w+\s/g; str = "fee fi fo fum"; myArray = str.match(re); document.write(myArray); </script>
顯示出 {{ mediawiki.external('\"fee \", \"fi \", \"fo \"') }}。在這個範例中,你可以取代一整行︰
re = /\w+\s/g;
改用︰
re = new RegExp("\\w+\\s", "g");
得到同樣的結果。
m
標誌用來指明輸入的多行字串應該視為多行。如果使用 m
標誌,^ 和 $ 就會在輸入字串裡比對每一行的開始處和結尾處,而非整個字串的開始處和結尾處。
{{ PreviousNext("Core_JavaScript_1.5_教學:正規表達式的運用:括弧子字串的比對結果的運用", "Core_JavaScript_1.5_教學:正規表達式的運用:正規表達式的範例") }}
{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Advanced_Searching_With_Flags", "es": "es/Gu\u00eda_JavaScript_1.5/Trabajar_con_expresiones_regulares/Ejecutar_una_busqueda_global,_discriminar_mayusculas_y_minusculas_y_considerar_entrada_multil\u00ednea", "fr": "fr/Guide_JavaScript_1.5/Travailler_avec_les_expressions_rationnelles/Ex\u00e9cution_de_recherches_globales,_ignorer_la_casse,_utilisation_de_cha\u00eenes_multilignes", "ja": "ja/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Advanced_Searching_With_Flags", "pl": "pl/Przewodnik_po_j\u0119zyku_JavaScript_1.5/Praca_z_wyra\u017ceniami_regularnymi/Globalne_wyszukiwanie,_wielko\u015b\u0107_znak\u00f3w,_wieloliniowe_wej\u015bcie" } ) }}