プログラミング

JavaScriptの正規表現ガイド

JavaScriptにおける「正規表現」と「テキスト操作」の重要な概念は、ウェブ開発において非常に役立つものです。これらは、文字列のパターン検索や変換を効率的に行うために広く使用されています。この記事では、JavaScriptにおける正規表現(RegExp)とテキスト操作の基礎から応用に至るまでを完全かつ包括的に解説します。

1. 正規表現の基本

正規表現(RegExp)は、文字列の検索や置換、抽出を行うための強力なツールです。JavaScriptにおいて正規表現を使用するには、RegExpオブジェクトを使うか、リテラル表現を用います。

1.1 正規表現リテラル

正規表現リテラルは、スラッシュ(/)で囲まれたパターンを使って定義されます。例えば、/abc/は「abc」という文字列を検索する正規表現です。

javascript
let regex = /abc/;

1.2 RegExpオブジェクト

RegExpコンストラクタを使って正規表現を動的に作成することもできます。

javascript
let regex = new RegExp('abc');

2. 正規表現の構文

正規表現の構文は多岐にわたりますが、基本的なパターンとメタキャラクターについて解説します。

2.1 メタキャラクター

メタキャラクターは、特定の動作を指示するために使います。代表的なものをいくつか紹介します。

  • .:任意の一文字を表す。
  • ^:文字列の先頭を表す。
  • $:文字列の末尾を表す。
  • *:直前の文字が0回以上繰り返されることを意味する。
  • +:直前の文字が1回以上繰り返されることを意味する。
  • ?:直前の文字が0回または1回であることを意味する。
  • []:角括弧内のいずれかの文字と一致する。
  • |:選択を表す、例えばabc|defabcまたはdefに一致する。

2.2 グループ化とキャプチャ

括弧 () を使って、文字列の一部をグループ化することができます。これにより、後でその部分にアクセスすることができます。

javascript
let regex = /(abc)/;

3. 正規表現メソッド

JavaScriptには正規表現を扱うためのメソッドがいくつか用意されています。主なメソッドを紹介します。

3.1 test() メソッド

test()メソッドは、文字列が正規表現に一致するかどうかを判断します。真偽値を返します。

javascript
let regex = /abc/; let result = regex.test('abcdef'); // true

3.2 exec() メソッド

exec()メソッドは、文字列が正規表現に一致した場合、その一致した部分を返します。もし一致しなければnullを返します。

javascript
let regex = /(abc)/; let result = regex.exec('abcdef'); // ['abc', index: 0, input: 'abcdef', groups: undefined]

4. 正規表現を使った文字列操作

JavaScriptでは、文字列の操作において正規表現を活用することがよくあります。以下のメソッドを使用して、文字列内のパターンを検索、置換、抽出できます。

4.1 match() メソッド

match()メソッドは、文字列に正規表現が一致する部分をすべて配列として返します。

javascript
let str = 'abc def abc'; let regex = /abc/g; let result = str.match(regex); // ['abc', 'abc']

4.2 replace() メソッド

replace()メソッドは、正規表現に一致する部分を別の文字列に置き換えます。

javascript
let str = 'abc def abc'; let regex = /abc/g; let result = str.replace(regex, 'xyz'); // 'xyz def xyz'

4.3 split() メソッド

split()メソッドは、正規表現を使って文字列を分割します。

javascript
let str = 'apple,banana,orange'; let regex = /,/; let result = str.split(regex); // ['apple', 'banana', 'orange']

5. 正規表現のフラグ

正規表現には、パターンマッチングの動作を変更するためのフラグがあります。主要なフラグを以下に示します。

  • g:グローバル検索(すべての一致を検索)
  • i:大文字小文字を区別しない検索
  • m:複数行の検索

例:

javascript
let regex = /abc/i; // 大文字小文字を区別しない

6. よく使う正規表現のパターン

以下に、よく使われる正規表現パターンをいくつか紹介します。

6.1 電話番号のバリデーション

日本の電話番号を検証する正規表現の例です。

javascript
let regex = /^0\d{1,4}-\d{1,4}-\d{4}$/; let result = regex.test('090-1234-5678'); // true

6.2 メールアドレスのバリデーション

メールアドレスの基本的な検証正規表現です。

javascript
let regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; let result = regex.test('[email protected]'); // true

6.3 日付のフォーマット検証

YYYY-MM-DD形式の日付を検証する正規表現の例です。

javascript
let regex = /^\d{4}-\d{2}-\d{2}$/; let result = regex.test('2025-03-14'); // true

7. 結論

JavaScriptの正規表現とテキスト操作は、文字列のパターン検索や加工を非常に効率的に行える強力なツールです。基本的な構文とメソッドを理解し、日々の開発に活用することで、より高度な文字列操作が可能になります。

Back to top button