← 所有文章

JavaScript 正則表達式完整指南:RegExp 物件深入解析

2026 年 3 月 · 閱讀時間約 8 分鐘

JavaScript 內建了強大的正則表達式支援。本文將深入解析 JavaScript 的 RegExp 物件,從基礎語法到 ES2024 的最新功能,提供一份完整的參考指南。

建立正則表達式

JavaScript 中有兩種建立正則表達式的方式:

字面量語法在程式碼載入時編譯,適合固定的 Pattern。建構函式在執行時編譯,適合動態生成的 Pattern。

旗標(Flags)

旗標名稱說明
gglobal全域搜尋,比對所有結果
iignoreCase忽略大小寫
mmultiline多行模式,^ 和 $ 比對每行
sdotAll讓 . 也比對換行字元
uunicode啟用 Unicode 模式
vunicodeSetsES2024 Unicode 集合
dhasIndices提供比對位置索引
ysticky粘性搜尋,從 lastIndex 開始

常用方法

RegExp 方法

String 方法

具名捕獲群組

ES2018 引入了具名捕獲群組 (?<name>...),讓捕獲的內容可以透過名稱而非索引來存取,大幅提升程式碼的可讀性。

前瞻與後顧

類型語法說明
正向前瞻(?=...)後面必須是指定的模式
負向前瞻(?!...)後面不能是指定的模式
正向後顧(?<=...)前面必須是指定的模式
負向後顧(?<!...)前面不能是指定的模式

ES2024 新功能:v 旗標(unicodeSets)帶來了集合運算功能,允許在字元類別中使用交集(&&)和差集(--)運算,讓 Unicode 字元的處理更加靈活。

測試你的正則表達式

使用我們的工具即時測試 JavaScript 正則表達式:

立即使用正則表達式測試工具 →

結語

JavaScript 的正則表達式功能隨著 ECMAScript 標準的演進越來越強大。掌握這些功能,能幫助你更有效率地處理各種文字處理需求。

參考文獻

  1. ECMA International. "ECMAScript Language Specification — RegExp." ECMA-262. https://tc39.es/ecma262/#sec-regexp-regular-expression-objects
  2. Mozilla Developer Network. "RegExp." MDN Web Docs. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
  3. TC39. "TC39 Proposals." GitHub. https://github.com/tc39/proposals