」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼 JavaScript 正規表示式測試失敗?

為什麼 JavaScript 正規表示式測試失敗?

發佈於2024-11-10
瀏覽:103

Why Does JavaScript RegEx Testing Fail?

JavaScript 正規表示式測試失敗:解碼問題

在JavaScript 領域,開發人員遇到了一個令人費解的困境:他們的正規表示式模式總是一致任何輸入都會產生錯誤的結果。在與線上編輯分享他們的程式碼後,令人驚訝的是它的功能達到了預期。仔細檢查發現了罪魁禍首:反斜線處理不當。

最初,開發者將正規表示式定義為字串:

var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");

但是,當從字串建構正規表示式時,將每個反斜杠字元加倍至關重要。這是因為解析器解釋字串文字並應用自己的反斜線規則,從而導致修改後的表達式與預期模式不同。

省略反斜線加倍,模式變成:

^(0[1-9]|1[0-2])/d{4}$

相反,反斜線應該在字串:

var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");

此修改可確保解析器正確解釋模式,使其能夠識別月份和年份所需的格式。

此外,值得考慮使用正規表示式語法直接:

var regEx = /^(0[1-9]|1[0-2])\/\d{4}$/g;

這樣就消除了字串插值的需要,並提供更直觀的語法來表達模式。

版本聲明 本文轉載於:1729229116如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3