English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript 基礎チュートリアル

JavaScript オブジェクト

JavaScript 関数

JS HTML DOM

JS ブラウザBOM

AJAX 基礎チュートリアル

JavaScript 参考マニュアル

JavaScriptの正規表現(RegExp)

正規表現は通常「regex」または「RegExp」と呼ばれ、文字列内の文字組み合わせをマッチするパターンです。

正規表現は現在利用可能な最も強力なツールの1つであり、効果的にテキストを処理および操作できます。

正規表現はすべての種類のテキスト検索およびテキスト置換操作。

正規表現は単一の文字でも、より複雑なパターンでもあります。

JavaScriptで正規表現はオブジェクトでもあります。

正規表現の作成

正規表現を次のいずれかの方法で作成できます:

正規表現を使用してテキストを含むパターンから構成されます。以下のように示されます:

  var regex = /w3codebox/g

またはRegExpオブジェクトの構築関数を使用する方法は以下の通りです:

  var regex = new RegExp("w3codebox", "g");

例説明:

  • w3codeboxはパターン(検索に使用)

  • gは修飾子(全てのマッチを検索する)

を使用して構築関数を使用してください。この関数は正規表現の実行時コンパイルを提供できます。

パターンがわからない場合(例えば、ユーザー入力から取得する場合)には、構築関数。

注:このテキスト構文は正斜線(/pattern/)を使用して正規表現パターンを包装し、構文記法は引用符(“pattern”)を使用します。

文字列メソッドを使用して

JavaScriptでよく使用される正規表現の3つの文字列メソッド:search()replace()およびmatch()

search()メソッドはパターンを検索し、マッチの場所を返します。

replace()メソッドはパターンを置換するように修正された文字列を返します。

match()方法は、正規表現と一致するものを検索し、それをArrayオブジェクトとして返します。

search()メソッド

search()メソッドは正規表現と文字列間のマッチを検索するために実行します。

マッチが見つかった場合、最初のマッチの場所が返されます。マッチが見つからない場合、-1

var str = 'The question is to be, or not to be, that is to be.';
var pos = str.search('to be';
テストを見て‹/›

以下の例では、i修飾子を使用する正規表現の使用(大文字と小文字を区別しない):

var str = 'The question is TO BE, or not to be, that is to be.';
var pos = str.search(/to be/i);
テストを見て‹/›

正規表現を使用すると、検索機能がより強力になります(例えば、大文字と小文字を区別しない)。

replace()メソッド

replace()新しい文字列が返され、部分または全てのパターンマッチを含み、置換元で置換されます。

最初の引数は検索する値で、第二の引数は置換する値です。

var str1 = 'The question is to be, or not to be, that is to be.';
var str2 = str1.replace('to be', 'ZZZ';
テストを見て‹/›

デフォルトでは、replace()メソッドは、最初の一致のみを置換します。

すべての出现を置換するには、g修飾子を持つ正規表現(グローバル検索):

var str1 = 'The question is to be, or not to be, that is to be.';
var str2 = str1.replace(/to be/g, 'ZZZ';
テストを見て‹/›

大文字と小文字を区別しないコードを置換するには、i修飾子を持つ正規表現(大文字と小文字を区別しない):

var str1 = 'The question is TO BE, or not to be, that is to be.';
var str2 = str1.replace(/to be/gi, 'ZZZ';
テストを見て‹/›

match()メソッド

match()方法は、正規表現と一致するものを検索し、それをArrayオブジェクトとして返します。

var str = '汚染: 大気汚染は化学物質が大気に導入されることです';
var reg = str.match(/ion/g);
テストを見て‹/›

正規表現修飾子

修飾子は、グローバルな検索、大文字と小文字の区別、複数行の検索を実行するために使用されます:

修飾子説明
gグローバルな一致を実行し、最初の一致の後で停止するのではなく、すべての一致を検索テストしてみてください
i大文字と小文字を区別しない一致を実行テストしてみてください
m複数行の一致を実行テストしてみてください

正規表現パターン

正規表現パターンは、アルファベット、数字、記号などを使用し、一連の特殊な正規表現文字を含みます。

方括号[]一連の文字を検索するために使用

表現説明
[abc]方括号内の任意の文字を検索テストしてみてください
[0-9]方括号内の任意の文字(任意の数字)を検索テストしてみてください
(x|y)指定された任意の代替表現を検索テストしてみてください

メタ文字これは単なるアルファベット文字で、前にアンダースコアがある文字であり、この組み合わせに特別な意味を与えます:

メタ文字説明
\d数字を検索テストしてみてください
\W非文字文字を検索テストしてみてください
\sスペース文字を検索テストしてみてください

量詞指定された頻度または方括号内の文字列の位置を指定します:

表現説明
z+少なくとも一つの出现を含むどんなものにも一致zの文字列テストしてみてください
z*零個か複数の出现を含むどんなものにも一致zの文字列テストしてみてください
z?零か一つの出现を含むどんなものにも一致zの文字列テストしてみてください

RegExpメソッドの使用

JavaScriptでは、RegExpオブジェクトは既定の属性とメソッドを持つ正規表現オブジェクトです。

test()メソッドは文字列内でパターンを検索し、結果に応じてtrueまたはfalseを返します。

exec()メソッドは文字列内でパターンを検索し、見つけたテキストをオブジェクトとして返します。

test()メソッド

test()指定された文字列内のマッチングを検索する方法を実行します。

マッチングが見つかった場合、true;そうでない場合は、false

を使用してtest()時、あなたが知りたいパターンが文字列内に見つかったかどうかを知りたい場合

var str = "ja.oldtoolbag.com";
var regex = new RegExp("h");
var regex = new RegExp("h");
テストを見て‹/›

var ans = regex.test(str);test()boolean値を返しますが、exec()文字列を返します。

exec()メソッド

exec()指定された文字列内のマッチングを検索する方法を実行します。

マッチングが見つかった場合、このメソッドはマッチングのテキストを返します;見つからない場合はnullを返します。

var str = "ja.oldtoolbag.com";
var regex = new RegExp("h");
var ans = regex.exec(str);
テストを見て‹/›

入力を正規表現で確認する

文字列内の母音文字の数を計算する:

元音文字の数を表示するためには、入力フィールドにテキストを入力してください:

入力の母音文字の数:

コードを実行する

完全なRegExpリファレンス

完全な属性とメソッドのリファレンスについては、私たちのJavaScript RegExpリファレンス

参考部分にはすべてのRegExp属性とメソッドの説明と例が含まれています。