Я искал этот список в отношении настройки ESLint «no-useless-escape» для reg-ex.И обнаружил, что некоторые из упомянутых символов не нуждаются в экранировании для регулярного выражения в JS.Более длинный список в другом ответе здесь для PHP, который требует экранирования дополнительных символов.
В эта проблема github для ESLint , примерно на полпути, пользователь not-an-aardvark
объясняетпочему символ, на который ссылается проблема, является символом, который может быть экранирован.
В javascript символом, который НУЖЕН экранироваться, является синтаксический символ или один из них:
^ $ \ . * + ? ( ) [ ] { } |
Ответ на проблему github, с которой я столкнулся выше, включает в себя объяснение семантики «Приложения B» (о которой я не знаю много), которая позволяет 4 из вышеупомянутых символовбыть UNescaped: ) ] { }
.
Еще одна вещь, на которую следует обратить внимание, это то, что побег из персонажа, который не требует побега, не принесет никакого вреда (за исключением, может быть, если вы пытаетесь убежать от побега).Итак, мое личное эмпирическое правило таково: «Если сомневаешься, сбегай»