跳至內容

eslint/no-control-regex 正確性

此規則預設為啟用。

此規則的功能

禁止在正規表示式中使用控制字元以及一些匹配控制字元的跳脫序列。

為什麼這不好?

控制字元是 ASCII 範圍 0-31 中的特殊、不可見字元。這些字元很少在 JavaScript 字串中使用,因此包含明確匹配這些字元的元素的正規表示式很可能是錯誤的。

範例

此規則的錯誤程式碼範例

javascript
var pattern1 = /\x00/;
var pattern2 = /\x0C/;
var pattern3 = /\x1F/;
var pattern4 = /\u000C/;
var pattern5 = /\u{C}/u;
var pattern6 = new RegExp("\x0C"); // raw U+000C character in the pattern
var pattern7 = new RegExp("\\x0C"); // \x0C pattern

此規則的正確程式碼範例

javascript
var pattern1 = /\x20/;
var pattern2 = /\u0020/;
var pattern3 = /\u{20}/u;
var pattern4 = /\t/;
var pattern5 = /\n/;
var pattern6 = new RegExp("\x20");
var pattern7 = new RegExp("\\t");
var pattern8 = new RegExp("\\n");

參考資料

以 MIT 許可證發布。