JavaScriptの正規表現で先頭・末尾を指定する^と$の使い方
先生と生徒の会話形式で理解しよう
生徒
「JavaScriptの正規表現で、^や$ってよく見かけます。何に使うんですか?」
先生
「これは文字列の先頭と末尾を指定する記号です。^は文字列の最初、$は文字列の最後にマッチさせるときに使います。」
生徒
「それぞれどういう場合に使えばいいですか?」
先生
「順番に例を見ながら説明します。初心者でも理解しやすいように簡単な例を使いましょう。」
1. ^(キャレット)で文字列の先頭を指定する
^ を使うと、文字列の先頭に一致する文字列を検索できます。例えば、文章が特定の文字で始まるか確認したい場合に便利です。
const text = "Hello, JavaScript!";
const result = text.match(/^Hello/);
console.log(result); // ["Hello"]
文字列の先頭が "Hello" で始まっている場合のみ一致します。先頭以外に "Hello" があってもマッチしません。
2. $(ドル)で文字列の末尾を指定する
$ は文字列の末尾に一致するパターンを指定できます。例えば、文章が特定の文字で終わるか確認したい場合に使います。
const text = "JavaScript is fun";
const result = text.match(/fun$/);
console.log(result); // ["fun"]
文字列の最後が "fun" で終わる場合のみ一致します。途中に "fun" があってもマッチしません。
3. ^と$を組み合わせて完全一致を確認する
^と$を組み合わせると、文字列全体が特定の文字列と完全に一致するかどうかを確認できます。
const text = "JavaScript";
const result = text.match(/^JavaScript$/);
console.log(result); // ["JavaScript"]
この場合、文字列全体が "JavaScript" と完全一致するときだけマッチします。
4. 複数行文字列での^と$の使い方
文字列に改行がある場合、通常の^や$は文字列全体の先頭と末尾にしかマッチしません。しかし m フラグを使うと、各行の先頭と末尾にもマッチさせることができます。
const text = `first line
second line
third line`;
const result = text.match(/^second/m);
console.log(result); // ["second"]
このように、複数行の文章でも特定の行の先頭や末尾を検索することができます。
5. 活用ポイント
- ^で文字列の先頭を検索、$で文字列の末尾を検索。
- ^と$を組み合わせると完全一致チェックが可能。
- 複数行モード(
mフラグ)を使うと改行ごとの先頭・末尾にマッチ。 - 文章の検証やログ解析など、特定の位置に文字があるか確認したい場合に役立つ。
6. 注意点
正規表現の^や$は便利ですが、改行を含む文章では挙動が変わることがあります。必要に応じて m フラグを使い、どこにマッチさせたいかを明確にして使うことが重要です。