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;
這樣就消除了字串插值的需要,並提供更直觀的語法來表達模式。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3