首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JS 正則零寬斷言(環視)通俗講解:正向/負向、順序/逆序,四種組合一張表看懂

     編輯:程式設計綜合問答

零寬斷言**不消耗字符**,只在當前位置**判斷條件**,滿足則繼續匹配,不滿足則回溯失敗。四種核心形式:

速查表

語法名稱含義例子匹配結果
`(?=pattern)`正向順序環視**右側**必須匹配 pattern`\d+(?=元)``"100元"` → `100`
`(?!pattern)`負向順序環視**右側**必須**不**匹配 pattern`\d+(?!元)``"100美元"` → `100`
`(?<=pattern)`正向逆序環視**左側**必須匹配 pattern`(?<=¥)\d+``"¥99"` → `99`
`(?負向逆序環視**左側**必須**不**匹配 pattern`(?`"$99"` → `99`

實戰場景

  • **千分位分隔**:`(\d)(?=(\d{3})+$)` → `replace('$1,')`。
  • **密碼強度**:`^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$`(含小寫、大寫、數字、≥8位)。
  • **單詞邊界替代**:`(?
  • **HTML 標籤內容**:`(?<=).*?(?=)` 提取標題(需支援逆序環視)。

瀏覽器支援現狀(2024)

  • 順序環視 `(?=)` `(?!)`:全瀏覽器支援(ES2018 前)。
  • 逆序環視 `(?<=)` `(?
  • 生產環境若需兼容舊瀏覽器,改用**捕獲組 + 替換函數**或**兩次匹配**繞過。

推薦深度閱讀

  • 《正則表達式必知必知》第 8 章。
  • CSDN 博主 lxcnn 兩篇圖解:
    `https://blog.csdn.net/lxcnn/article/details/4304754`
    `https://blog.csdn.net/lxcnn/article/details/5126888`
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved