私はjavascript正規表現を使用してデータの検証を行い、受け入れたい文字を指定しています(英数字、スペース、および次の文字を受け入れたいです!&,'\-
。必要に応じて後で追加する可能性があります)。私のコードは次のとおりです。
var value = userInput;
var pattern = /[^A-z0-9 "!&,'\-]/;
if(patt.test(value) == true) then do something
それは正常に機能し、角かっことキャレット記号を除いてユーザーに入力してほしくない文字を除外します。私が読んだすべてのjavascript正規表現チュートリアルから、それらは特殊文字です-括弧はそれらの間の任意の文字を意味し、この場合のキャレットは角括弧の間にない任意の文字を意味します. これらの文字も受け入れられる理由についての説明をこことグーグルで検索しましたが、説明が見つかりません。
私の入力が角括弧とキャレットを受け入れるのはなぜですか?