JavaScript 正規表現で文字列を検索する(match)

JavaScriptのmatchメソッドのサンプルです。
正規表現で文字列を検索します。

目次

matchメソッド

検索対象の文字列 . match ( 正規表現のパターン )

文字列を検索する

3行目は、正規表現で文字列「BC」があるかを指定しています。
5行目は、if文で確認しています。一致する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "ABCあいう";
	p1 = /BC/;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //BCが表示される
	}
</script>

文字をORで検索する

3行目は、正規表現で「F」or「い」があるかを指定しています。
5行目は、if文で確認しています。指定の文字が存在する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "ABCあいう";
	p1 = /[Fい]/;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //いが表示される
	}
</script>

文字を否定で検索する

3行目は、正規表現で「F」と「い」以外+全て(オプションのg)を指定しています。
5行目は、if文で確認しています。指定の文字が存在する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "ABCあいう";
	p1 = /[^Fい]/g;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //A,B,C,あ,うが表示される
	}
</script>

文字を範囲で指定して検索する

3行目は、正規表現で「A」から「C」+全て(g)を指定しています。
5行目は、if文で確認しています。指定の文字が存在する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "ABCあいう";
	p1 = /[A-C]/g;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //A,B,Cが表示される
	}
</script>

先頭の文字列を検索する

3行目は、正規表現で「AB」が先頭にあるかを指定しています。
5行目は、if文で確認しています。指定の文字が存在する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "ABCあいう";
	p1 = /^AB/;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //ABが表示される
	}
</script>

文字列の最後尾を検索する

3行目は、正規表現で「いう」が最後尾にあるかを指定しています。
5行目は、if文で確認しています。指定の文字が存在する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "ABCあいう";
	p1 = /いう$/;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //いうが表示される
	}
</script>

連続する文字を指定して検索する

3行目は、正規表現で「c」が2回出現している+全て(g)を指定しています。
5行目は、if文で確認しています。指定の文字が存在する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "ABCccbcccあいう";
	p1 = /c{2}/g;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //cc,ccが表示される
	}
</script>

連続する文字(個以上)を指定して検索する

3行目は、正規表現で「c」が2回以上出現している+全て(g)を指定しています。
5行目は、if文で確認しています。指定の文字が存在する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "ABCccbcccあいう";
	p1 = /c{2,}/g;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //cc,cccが表示される
	}
</script>

1回以上出現している文字を検索する

3行目は、正規表現で「c」が1回以上出現しているを指定しています。
5行目は、if文で確認しています。指定の文字が存在する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "ABCccbcccあいう";
	p1 = /c+/;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //ccが表示される
	}
</script>

1回以上出現している文字を検索する+gとiオプション

3行目は、正規表現で「c」or「C」(オプションのi)が1回以上+全て(g)を指定しています。
iオプションは、大文字と小文字の区別をしません。
5行目は、if文で確認しています。指定の文字が存在する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "ABCccbcccあいう";
	p1 = /c+/gi;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //Ccc,cccが表示される
	}
</script>

1桁以上の半角数値のみかをチェックする

3行目は、正規表現で1桁以上の半角数値のみかを指定しています。
5行目は、if文で確認しています。該当する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "123456";
	p1 = /^[0-9]+$/;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //123456が表示される
	}
</script>

1桁以上の半角数値または英字の小文字(a-f)のみかをチェックする

3行目は、正規表現で1桁以上の半角数値または英字の小文字(a-f)のみかを指定しています。
5行目は、if文で確認しています。該当する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "123456abc";
	p1 = /^[0-9a-f]+$/;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //123456abcが表示される
	}
</script>

郵便番号の桁数と数値のチェックする

3行目は、正規表現で郵便番号の桁数と数値のチェックを指定しています。
5行目は、if文で確認しています。該当する場合trueになります。
→2行目の文字列を3行目の正規表現で検索する。

<script>
	str1 = "123-4567";
	p1 = /^\d{3}-\d{4}$/;

	if(str1.match(p1)){
		document.write(str1.match(p1)); //123-4567が表示される
	}
</script>

正規表現の構文

正規表現の構文として以下2つがあります。

var 変数 = /正規表現のパターン/オプション
var 変数 = new RegExp('正規表現のパターン','オプション') 

正規表現の主なパターン

以下は、正規表現の主なパターンです。

パターン パターンの意味
ABD ABDという文字か。
[ABD] A or B or Dのどれか1文字が入っているか。
[^ABD] A と B と D以外の1文字が入っているか。
[A-D] A or B or C or Dのどれか1文字が入っているか。
A|B|D A or B or Dのどれか1文字が入っているか。
[a-zA-Z] 英字の小文字のaからzまたは大文字のAからZのどれか1文字が入っているか。
^A 先頭の文字はAか。
A$ 最後尾の文字はAか。
* *の直前の文字が0回以上の繰り返し。
+ +の直前の文字が1回以上の繰り返し。
? ?の直前の文字が0回または1回の繰り返し。
{n} n回続いている。
{n,} n回以上続いている。
 . 任意の一文字を表す。
¥s 比較する文字に、空白1文字がある。
¥S 比較する文字に、空白以外の1文字がある。
¥d 比較する文字に、数字1文字がある。 ([0-9]と同じ)
¥D 比較する文字に、数字以外の1文字がある。  ([^0-9]と同じ)
¥w 比較する文字に、小文字の英字 or 大文字の英字 or 数値 or アンダースコアの1文字がある。
[a-zA-Z0-9_]と同じ
¥W ¥wの否定。
[^¥w]と同じ

正規表現の主なオプション

以下は、正規表現の主なオプションです。

オプション 説明
g マッチしたものをすべて返す(Global search.)
i 大文字と小文字の区別をしない(Case-insensitive search.)
m 複数行をマッチする

以下は、MDNの正規表現のリンクです。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions

関連の記事

JavaScript 文字列を区切り文字で分割する(split)
JavaScript 文字列から文字列の一部を取得する(substring)
JavaScript 文字列から文字列の一部を取得する(slice)
JavaScript 文字列から文字列の一部を取得する(substr)
JavaScript 文字列から1文字を取得する(charAt)
JavaScript 文字列の長さ/配列と連想配列の要素数を取得する(length)
JavaScript 文字列の位置を取得するサンプル(indexOfとlastIndexOf)
JavaScript 文字列の大文字と小文字を変換する(toLowerCaseとtoUpperCase)
JavaScript 文字列を置き換える(replace)

 はまったらエンジニア特化型Q&Aサイト
【teratail(テラテイル)】で質問しましょう!


△上に戻る