往期回顧
正文內容
簡單理解:括號提供了分組,便於我們使用它。
通常有兩種引用情況:在JS代碼中引入,和在正則表達式中引入。
分組和分支結構,主要是強調括號內是一個整體,即提供子表達式。
- 分組如 /(ab)+/g 匹配連續出現的 ab 。
- 分支結構如 /(a|b)+/g 匹配出現的 a 或 b 表達式。
1.分組引用
如在日期匹配的時候,就可以這麼改造:
- 提取數據
- 替換
將 yyyy-mm-dd 轉成 mm/dd/yyyy。
2. 反向引用
使用 \\n 表示第 n 個分組,比如 \\1 表示第 1 個分組:
- 多個括號嵌套
按照開括號的順序:
- 特殊情況
\\10 表示的是第 10 個分組,若要匹配 \\ 和 0 時,使用 (?:\\1)0 或 \\1(?:0)。
- 當引用不存在的分組
如匹配 \\2 是前面不存在,則匹配 \\2 本身,即對 2 的轉義,不同瀏覽器可能不同:
- 分組後面有量詞
當分組後面有量詞的話,則捕獲的是最後一次的匹配:
3. 相關案例
這裡只寫出核心代碼。
- 模擬字符串 trim 方法
- 每個單詞首字母大寫
- 駝峰化 和 中劃線化
- 匹配成對HTML標籤
匹配成對標籤
leo,而不匹配不成對標籤
閱讀更多 前端自習課 的文章