JavaScriptの正規表現の基本と使い方

正規表現の記号とコード画面をモチーフにしたJavaScriptのイメージ
JavaScriptの正規表現の基本と使い方を視覚的に表現したアイキャッチ画像

JavaScriptの正規表現(RegExp)は、文字列の検索・置換・検証を効率的に行うための強力な機能です。入力チェックや文字列操作の場面で頻繁に利用されるため、基礎から理解しておくことが重要です。

本記事では、正規表現の基本構文から実践的な使い方までを体系的に解説します。

正規表現とは

正規表現とは、文字列のパターンを定義し、それに一致する部分を検索・抽出・置換するための仕組みです。

例えば、以下のような用途で使われます。

  • 特定の文字列が含まれているか判定する
  • メールアドレスの形式チェックを行う
  • 数字のみを抽出する
  • 特定の文字を別の文字に置き換える

正規表現の基本構文

JavaScriptでは、正規表現は以下の2つの方法で作成できます。

リテラルで作成する

const regex = /abc/;

コンストラクタで作成する

const regex = new RegExp("abc");

通常は、簡潔に書けるリテラル形式がよく使われます。

基本的なメタ文字

正規表現では、特別な意味を持つ文字(メタ文字)を使ってパターンを表現します。

任意の1文字「.」

const str = "abc";
const result = /a.c/.test(str);
console.log(result); // true

「.」は任意の1文字に一致します。

繰り返し「*」「+」「?」

const str = "aaab";

console.log(/a*/.test(str)); // true(0回以上)
console.log(/a+/.test(str)); // true(1回以上)
console.log(/a?/.test(str)); // true(0回または1回)

文字クラス「[]」

const str = "cat";

console.log(/[abc]/.test(str)); // true

「[]」の中に指定した文字のいずれかに一致します。

否定「^」

const str = "dog";

console.log(/[^abc]/.test(str)); // true

「^」を先頭に置くと、その文字以外に一致します。

よく使うパターン

数字に一致

const str = "abc123";

const result = str.match(/\d+/);
console.log(result[0]); // 123

\d は数字(0〜9)を意味します。

英字に一致

const str = "ABCdef";

const result = str.match(/[a-zA-Z]+/);
console.log(result[0]); // ABCdef

空白に一致

const str = "Hello World";

const result = str.match(/\s/);
console.log(result[0]); // " "

フラグの使い方

正規表現には検索の挙動を変える「フラグ」があります。

主なフラグ

  • g:全体検索
  • i:大文字小文字を区別しない
  • m:複数行モード

使用例

const str = "Hello hello";

const result = str.match(/hello/gi);
console.log(result); // ["Hello", "hello"]

正規表現を使うメソッド

JavaScriptでは、文字列と正規表現を組み合わせて使うメソッドがいくつかあります。

test():一致するか判定

const regex = /abc/;

console.log(regex.test("abcdef")); // true

match():一致した結果を取得

const str = "abc123";

const result = str.match(/\d+/);
console.log(result[0]); // 123

replace():文字列を置換

const str = "Hello World";

const result = str.replace(/World/, "JavaScript");
console.log(result); // Hello JavaScript

※ replace()の詳しい使い方は
JavaScriptのreplace()についての解説記事」もあわせて読むと理解しやすくなります。

split():文字列を分割

const str = "apple,orange,banana";

const result = str.split(/,/);
console.log(result); // ["apple", "orange", "banana"]

実用例

メールアドレスの簡易チェック

const email = "test@example.com";

const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;

console.log(regex.test(email)); // true

数字のみかチェック

const str = "12345";

const result = /^\d+$/.test(str);
console.log(result); // true

全角スペース削除

const str = "Hello World";

const result = str.replace(/ /g, "");
console.log(result); // HelloWorld

正規表現を学ぶ際のポイント

正規表現は一見複雑ですが、以下の順序で理解するとスムーズです。

  1. 基本構文(/pattern/)を理解する
  2. メタ文字(. + * [] など)を覚える
  3. 実際のメソッド(test・matchなど)と組み合わせる
  4. 実用パターンを繰り返し使う

まとめ

JavaScriptの正規表現は、文字列処理を効率化するための重要な技術です。

  • パターンを定義して文字列を操作できる
  • メタ文字を使うことで柔軟な検索が可能
  • test・match・replaceなどと組み合わせて使う

最初は難しく感じやすいですが、基本パターンを押さえることで実務でも十分に活用できるようになります。

関連記事

これらの記事もあわせて読むことで、文字列操作やデータ処理の理解がより深まります。