Bad escapement
次のコードを使用してJSHintでエラーが発生する理由を知っている人はいますか?
var regexS = '[\?&]' + name + '=([^&#]*)';
Bad escapement
次のコードを使用してJSHintでエラーが発生する理由を知っている人はいますか?
var regexS = '[\?&]' + name + '=([^&#]*)';
ダブルエスケープするだけです\
var regexS = '[\\?&]' + name + '=([^&#]*)';
この文字列をオブジェクトに使用することになると思いますがRegex
、文字列内の文字は正しくエスケープする必要があります。デフォルトでは、a\
は次の文字をエスケープしようとします。のようなものを追加すると\\
、オリジナルがエスケープされ、最終的な文字列で\
単一に評価されます。\
\? は有効なエスケープ文字ではありません。\\ に置き換えてみてください。
したがって、次のようになります。
var regexS = '[\\?&]' + name + '=([^&#]*)';
「\」はその後に続く文字をエスケープすることに注意してください。これが、\\ が 1 つのスラッシュとして出てくる理由です (この質問のソースを見ると、\ を 4 倍にする必要があることがわかります)。
その他の一般的なエスケープ シーケンスは、改行の \n とタブの \t です。