キャレット記号 ^
とドル記号 $
は、正規表現で特別な意味を持ちます。これらは「アンカー」と呼ばれます。
キャレット ^
はテキストの先頭に、ドル $
は末尾に一致します。
たとえば、テキストが Mary
で始まるかどうかをテストしてみましょう。
let str1 = "Mary had a little lamb";
alert( /^Mary/.test(str1) ); // true
パターン ^Mary
は、「文字列の先頭、そして Mary」を意味します。
同様に、snow$
を使用して、文字列が snow
で終わるかどうかをテストできます。
let str1 = "its fleece was white as snow";
alert( /snow$/.test(str1) ); // true
これらの特定のケースでは、代わりに文字列メソッド startsWith/endsWith
を使用できます。正規表現は、より複雑なテストに使用してください。
完全一致のテスト
両方のアンカーを組み合わせた ^...$
は、文字列がパターンに完全に一致するかどうかをテストするためによく使用されます。たとえば、ユーザー入力が正しい形式であるかどうかを確認する場合などです。
文字列が 12:34
形式の時間であるかどうかを確認してみましょう。つまり、2桁の数字、コロン、そしてさらに2桁の数字です。
正規表現言語では、これは \d\d:\d\d
です。
let goodInput = "12:34";
let badInput = "12:345";
let regexp = /^\d\d:\d\d$/;
alert( regexp.test(goodInput) ); // true
alert( regexp.test(badInput) ); // false
ここで、\d\d:\d\d
の一致は、テキストの先頭 ^
の直後から始まり、末尾 $
が直後に続かなければなりません。
文字列全体がこの形式と完全に一致する必要があります。 Abweichungen や余分な文字があると、結果は false
になります.
フラグ m
が存在する場合、アンカーの動作は異なります。これについては次の記事で説明します。
アンカー ^
と $
はテストです。これらは幅ゼロです。
つまり、これらは文字に一致するのではなく、正規表現エンジンに条件(テキストの先頭/末尾)をチェックさせるものです。
コメント
<code>
タグを使用し、複数行の場合は<pre>
タグで囲み、10行を超える場合はサンドボックス(plnkr、jsbin、codepen…)を使用してください。