JSLintは、次の行について安全でない '^'を報告します。何故ですか?それとも、キャラクタークラスを否定したいときに不平を言うだけですか?
// remove all non alphanumeric, comma and dash characters
"!$7s-Gd,&j5d-a#".replace(/[^\w,\-]/g, '');
下部でオプションが選択されている場合にのみ、これが行われます。
Disallow insecure . and [^...] in /RegExp/
the docs から:
真の場合。 [^ ...]はRegExpリテラルでは許可されません。安全なアプリケーションで検証する場合は、これらのフォームを使用しないでください。
したがって、あなたの質問に答えてください。もし^
で正規表現を開始し、それがチェックされている場合、はい、毎回エラーをスローします。問題はユニコード文字にあり、そこではほとんど何でも許可しており、セキュリティの問題、または検証のバイパスの問題の可能性があります。 許可しない何か(これはバイパスできる)の代わりに、許可する何だけか文字が有効です。