JavaScript で正規表現のパターンをテストする際によく使われる `test()` メソッドについて、基本的な使い方から実践的な例まで詳しく解説します。

test()メソッドの基本

`test()` メソッドは正規表現オブジェクトのメソッドで、文字列が正規表現のパターンにマッチするかどうかを確認できます。戻り値は真偽値(true/false)です。

const pattern = /JavaScript/;
console.log(pattern.test("Hello JavaScript")); // true
console.log(pattern.test("Hello Python")); // false

基本的な使い方

1. 単純な文字列マッチング

const pattern = /cat/;
console.log(pattern.test("I have a cat")); // true
console.log(pattern.test("I have a dog")); // false

2. 大文字小文字を区別しない

iフラグを使用することで、大文字小文字を区別せずにマッチングできます。

const pattern = /javascript/i;
console.log(pattern.test("JavaScript")); // true
console.log(pattern.test("JAVASCRIPT")); // true

3. 数字のマッチング

const pattern = /\d+/;
console.log(pattern.test("123")); // true
console.log(pattern.test("abc")); // false

実践的な使用例

1. メールアドレスの基本的な検証

const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
console.log(emailPattern.test("test@example.com")); // true
console.log(emailPattern.test("invalid-email")); // false

2. パスワードの要件チェック

// 8文字以上、英数字を含む
const passwordPattern = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/;
console.log(passwordPattern.test("password123")); // true
console.log(passwordPattern.test("pass")); // false

3. 電話番号のフォーマット検証

const phonePattern = /^\d{2,4}-\d{2,4}-\d{4}$/;
console.log(phonePattern.test("03-1234-5678")); // true
console.log(phonePattern.test("090-1234-5678")); // true

注意点

1. グローバルフラグ(g)使用時の挙動

const pattern = /test/g;
const str = "test test";
console.log(pattern.test(str)); // true
console.log(pattern.test(str)); // true
console.log(pattern.test(str)); // false

2. パターンの再利用

const pattern = /\d+/;
["123", "abc", "456"].forEach(str => {
    console.log(pattern.test(str));
});

まとめ

  • `test()` メソッドは文字列が正規表現パターンにマッチするかを確認する簡単な方法です
  • 戻り値は boolean 型で、マッチする場合は true、しない場合は false を返します
  • フラグを使用することで、大文字小文字の区別や複数行マッチングなどの柔軟な検索が可能です
  • フォーム検証やデータバリデーションなど、実践的な場面で活用できます

正規表現と test() メソッドを組み合わせることで、効率的な文字列パターンマッチングが実現できます。適切に使用することで、コードの可読性と保守性を向上させることができます。