では、JavaScriptの正規表現(RegExp)を初心者向けに、例題を交えながらわかりやすく解説します。
1. 正規表現って何?
正規表現(RegExp)は、「文字列の中に特定の文字やパターンが含まれているか調べる道具」です。
たとえば:
- 「文字列に ‘apple’ が含まれているか?」
- 「数字だけでできている文字列か?」
- 「メールアドレスの形式になっているか?」
こういうチェックを簡単にできるようになります。
2. 正規表現オブジェクトの作り方
方法1:リテラルを使う
let regexp = /apple/; // 'apple' が含まれているか調べるパターン
JavaScriptポイント
/と/の間に探したい文字列やパターンを書く- フラグを追加して挙動を変えられる
i→ 大文字・小文字を区別しないg→ 見つかったすべての箇所を対象にする
例:
let regexp = /apple/i; // 'Apple' でも 'apple' でもマッチする
JavaScript方法2:RegExp コンストラクタを使う
let regexp = new RegExp('apple'); // 文字列として書く
JavaScript- 文字列から正規表現を作るときに便利
- フラグを使う場合は第二引数に指定
let regexp = new RegExp('apple', 'i'); // 大文字小文字を区別しない
JavaScript使い分け
- パターンが決まっている → リテラル
/…/ - ユーザー入力や変数でパターンを作る →
RegExp
3. 正規表現の使い方
例題1:文字列に特定の単語があるか確認する
let regexp = /apple/;
let str1 = "I like apple pie";
let str2 = "I like bananas";
console.log(regexp.test(str1)); // true
console.log(regexp.test(str2)); // false
JavaScripttestメソッド → マッチしたらtrue、しなければfalse
例題2:数字だけの文字列か確認する
let regexp = /^\d+$/; // ^で先頭、$で末尾、\d+は1個以上の数字
console.log(regexp.test("12345")); // true
console.log(regexp.test("123a5")); // false
JavaScript^と$→ 文字列全体がパターンに合っているかチェック\d→ 数字0~9+→ 1回以上繰り返す
例題3:アルファベット4文字だけか確認する
let regexp = /^[a-zA-Z]{4}$/; // 4文字の英字
console.log(regexp.test("Test")); // true
console.log(regexp.test("Test1")); // false
JavaScript[a-zA-Z]→ 小文字a~z、大文字A~Z{4}→ 4文字 exactly
4. フラグの例
i→ 大文字・小文字を無視g→ 複数のマッチを取得m→ 複数行モード
例:
let str = "Apple apple APPLE";
let regexp = /apple/gi;
console.log(str.match(regexp)); // ['Apple', 'apple', 'APPLE']
JavaScriptmatchメソッド → マッチした文字列を配列で返す
5. ポイントまとめ(初心者向け)
- 正規表現は文字列チェックに便利な道具
/pattern/のリテラルが最も簡単- 動的に作りたい場合は
new RegExp() testで真偽値を確認、matchでマッチ部分を取得- 特殊文字(
\dや^$)を覚えるともっと便利
ちょっとした練習問題
- 「abc」で始まる文字列かどうかをチェックする正規表現を書いてみよう
- 3桁の数字だけかをチェックする正規表現を書いてみよう
解答と解説
練習問題1
「abc」で始まる文字列かどうかをチェックする正規表現を書こう
ステップ1:文字列の先頭を指定する
- 正規表現で文字列の先頭を指定するには
^を使います。
/^/
JavaScriptステップ2:先頭に「abc」を書く
/^abc/
JavaScript^の後に文字列を書くと、「先頭がその文字列で始まる」ことを意味します。
ステップ3:正規表現を使ってチェックする
let regexp = /^abc/;
console.log(regexp.test("abcdef")); // true
console.log(regexp.test("xyzabc")); // false
JavaScript解説
"abcdef"は先頭が"abc"なのでtrue"xyzabc"は先頭が"abc"ではないのでfalse
練習問題2
3桁の数字だけかをチェックする正規表現を書こう
ステップ1:数字を表す
- 正規表現で数字は
\dで表します。
/\d/
JavaScriptステップ2:3桁にする
{3}を使うと「3回繰り返す」という意味になります。
/\d{3}/
JavaScriptステップ3:文字列全体が3桁か確認する
^→ 先頭、$→ 末尾 を使うと「文字列全体が3桁の数字だけ」になります。
/^\d{3}$/
JavaScriptステップ4:正規表現を使ってチェック
let regexp = /^\d{3}$/;
console.log(regexp.test("123")); // true
console.log(regexp.test("12")); // false
console.log(regexp.test("1234")); // false
console.log(regexp.test("1a3")); // false
JavaScript解説
"123"→ 3桁の数字だけなのでtrue"12"→ 2桁なのでfalse"1234"→ 4桁なのでfalse"1a3"→ 数字以外が含まれるのでfalse
✅ まとめ
^と$→ 文字列全体をチェックするときに使う\d→ 数字0~9{n}→ n回繰り返すtest→ 正規表現にマッチするかを確認

