【JavaScript入門】testメソッドで文字列を正規表現でチェックする

こんにちは!エンジニアの中沢です。

JavaScriptには文字列を正規表現でチェックするための「testメソッド」があります。

正規表現でパターンを指定して文字列の検索ができるので、上手く活用してください。

この記事では、

・正規表現とは
・testメソッドとは
・testメソッドの使い方

という基本的な内容から、

・文字列の検索総まとめ
・文字列の操作総まとめ

などの応用的な使い方に関しても解説していきます。

今回はこれらの方法を覚えるために、testメソッドのさまざまな使い方をわかりやすく解説します!

目次

正規表現とは

正規表現は、特殊な文字を組み合わせて「パターン」を作ることで、そのパターンに適合した特定の文字を検出することができるようになります。

いきなりですが、次の例を見てください。

//正規表現のパターン例
/^\d{3}-?\d{4}$/

恐らく、意味不明な文字の羅列にしか見えないと思いますが、実は、このパターンは「郵便番号」を表しています。

郵便番号(123-4567)の組み合わせパターンというのは…

「3桁の数値」「-(ハイフン、ない場合もある)」「4桁の数値」

このような形式が一般的なわけですが、先程の正規表現はまさにこのパターンを表した文字列ということになります。

例えば、HTMLフォームなどでユーザーに郵便番号を入力してもらう時に、正しく入力されているかをチェックするプログラムは、先程の正規表現を使うと非常に簡単なコードで実現します。

var postcode = '123-4567';
var result = postcode.match(/^\d{3}-?\d{4}$/);

//パターンに適合しければreusltはnullになる

変数「postcode」に郵便番号が格納されているので、これに「match()」を使って正規表現を当てはめるだけで、正しい郵便番号なのかどうかをチェックすることが可能になります。

ちなみに、正規表現を使わずにプログラムしようとすれば、非常に複雑なコードになり、バグも発生しやすくなります。

主な正規表現の記号と意味については以下の表の通りです。

記号記号の説明例の説明
.任意の1文字。改行文字は除く。.+任意の文字列
*直前の1文字の0回以上の繰り返しと一致hoge*hogeもしくはhogee...と一致
^行の先頭^[0-9]行頭が数字
$行の末尾^.{10}$10文字の行
[ ]カッコ内の任意の1文字と一致。「-」で範囲指定可。[a-z]小文字のアルファベット1文字と一致
[^ ]カッコ内の任意の1文字と不一致。「-」で範囲指定可。[^A-Z]大文字のアルファベット以外
+直前の文字の1個以上の繰り返しと一致hoge+hogee...と一致
?直前の文字が0個または1個の場合に一致hoge?hogeもしくはhogと一致
{ }カッコ内の数値の繰り返しと一致{n}直前の文字のn個の繰り返しと一致
同上{,n}直前の文字のn個以下の繰り返しと一致
同上{m,}直前の文字のm個以上の繰り返しと一致
同上{m,n}直前の文字のm個以上、n個以下の繰り返しと一致
|直前、直後どちらかのパターンに一致hoge|piyohogeまたはpiyo
( )カッコ内をグループ化。マッチした内容は参照可。

正規表現の使い方はこちらの記事で詳しく解説しているので、ぜひ確認してください。

testメソッドとは

testメソッドは文字列を正規表現でチェックするために使います。

指定した文字列が正規表現のパターンにマッチすれば「true」を返し、マッチしなければ「false」を返します。

testメソッドの使い方

ここでは、「test」を使った検索方法を解説します。

testは正規表現のパターンから呼び出し、引数にチェックする文字列を指定します。

次のプログラムで確認してみましょう。

var str = 'user-12, user-Mike, user-Jane, user-325';
var regex = /user-\d+/;

var result = regex.test(str);

console.log(result);

実行結果:

true

このようにして、testを使って正規表現で文字列のチェックができました。

文字列の検索総まとめ

文字列を検索する様々な方法はこちらの記事で詳しく解説しているので、ぜひ確認してください。

文字列の操作総まとめ

文字列を操作する様々な方法はこちらの記事で詳しく解説しているので、ぜひ確認してください。

まとめ

いかがでしたか?

今回はtestメソッドで文字列をチェックする方法を解説しました。

正規表現でパターンを指定して文字列の検索ができるので、ぜひ活用してくださいね。

もし、testメソッドの使い方を忘れてしまったらこの記事を確認してください!

この記事を書いた人

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
ntakeshi@sejuku.net

目次