JavaScript | 正規表現オブジェクト

JavaScript JavaScript
スポンサーリンク

では、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
JavaScript
  • test メソッド → マッチしたら 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']
JavaScript
  • match メソッド → マッチした文字列を配列で返す

5. ポイントまとめ(初心者向け)

  1. 正規表現は文字列チェックに便利な道具
  2. /pattern/ のリテラルが最も簡単
  3. 動的に作りたい場合は new RegExp()
  4. test で真偽値を確認、match でマッチ部分を取得
  5. 特殊文字(\d^ $)を覚えるともっと便利

ちょっとした練習問題

  1. 「abc」で始まる文字列かどうかをチェックする正規表現を書いてみよう
  2. 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 → 正規表現にマッチするかを確認
タイトルとURLをコピーしました