Closed yumetodo closed 5 years ago
ESLintでもできる?
ESLintだと以下のルールが恐らくそれだと思います。 https://eslint.org/docs/rules/no-useless-escape
Demo: ESLint demo
文字列と正規表現リテラルで無意味なエスケープは異なるので扱いが難しいですが、 文字列の章は後で整理するつもりです。そこで検討してみます。 無効なエスケープシーケンスについてというよりは、エスケープシーケンス自体についてですかね。
恐らくエスケープシーケンスで問題となる場合の殆どは文字列と正規表現の相互変換 か JSON周りだと思うので、その辺について気をつける必要があることについてがわかると良いのかもしれないですね。
一応、過去のECMAScriptにRegExp.escapeを追加しようという話がありましたが、このプロポーザルの策定は中止されてましたね。 (経緯は忘れましたが、何か原理的に難しい要因があったような気がします。なのでこの話もベストな解がないのかもしれないですね)
これは #643 でかいけつ
のように無効なエスケープシーケンスは単にバックスラッシュがなかったように扱われる。
これはべつにC++でも
https://wandbox.org/permlink/Qevm2lLrlhJNqxTA
同じ挙動なのですが、
GCC
Clang
のようにコンパイラが怒ってくれる一方、JavaScriptではそういうことはない(もしかして知らないだけでESLintでもできる?)
なのでどこかでこの件について取り上げることはできないでしょうか?
提案の背景: https://github.com/MithrilJS/mithril.js/issues/2089