正規表現による文字列の検索(match)

正規表現による文字列の検索を行うには、string.matchメソッドを使用します。

正規表現については、「JavaScriptの正規表現」ページをご覧ください。
JavaScriptの正規表現

構文

var matchesArray = string.match(regexp);
引数名 説明
第一引数
必須
regexp string|RegExp 検索する文字列または正規表現

戻り値

見つかった場合は一致したすべての文字列および括弧内の文字列を配列で、見つからなかった場合はnullを返します。

なお、引数に文字列を指定した場合は、暗黙的にnew RegExp(...)が行われて検索を実行します。

サンプルコード

JavaScript

var str   = 'foo bar baz sample',
    index = str.match(/ba./g);

alert(index); // ['bar', 'baz']

String.matchメソッドで検索パターンが配列に対応させる

String.matchメソッドで検索パターンが複数に対応する方法をご紹介します。

  • ※ 毎回繰り返し処理を書かずに済むよう関数にして使いまわす方法を紹介しています。
  • ※ 検索パターン間は「&&」や「||」の関係などはありません。

JavaScript

/**
 * 正規表現での検索(配列対応)
 * @param {any[]} patterns 検索パターン
 * @param {any} str 検索する文字列
 * @return {any[]} 見つかった結果を配列で返す
 */
var matchMultiPatterns = function(patterns, str) {
	var result = [];

	var isArray = function(targetObject) {
		return (Object.prototype.toString.call(targetObject) === '[object Array]') ? true : false;
	};

	if (isArray(patterns)) {
		for (var i = 0, len = patterns.length; i < len; i++) {
			result.push(str.match(patterns[i]));
		}
	} else {
		result.push(str.match(patterns[i]));
	}

	return result;
};

使い方

引数名 説明
第一引数
必須
patterns any 検索する文字列または正規表現
第二引数
必須
str any 検索元となる文字列

戻り値

matchメソッドの戻り値を配列に格納して返します。

JavaScript

var text           = 'foo bar baz sample text',
    searchPatterns = [/.e/, 'sample'];

matchMultiPatterns(searchPatterns, text);

JavaScript逆引きリファレンス一覧へ戻る