PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのFILTER_VALIDATE_REGEXP定数とは?正規表現で値を検証する方法

FILTER_VALIDATE_REGEXPは、PHPに組み込まれているフィルター定数の一つで、Perl互換の正規表現(PCRE)を使って値を検証するために使用します。通常はfilter_var()関数と組み合わせて、文字列が指定したパターンに一致しているかどうかを判定します。

利用できるオプション

  • regexp ─ 検証に使用するPerl互換の正規表現を指定します。区切り文字(/など)で囲んだ形式で記述します。

戻り値

この定数自体は値を持つだけで、単独では何も返しません。実際の検証はfilter_var()関数を通じて行われ、検証が成功した場合は元の値がそのまま返され、失敗した場合はfalseが返されます。

サンプルコード

以下の例では、「ex」で始まる文字列かどうかを正規表現でチェックしています。

<?php
   $val = "example.com";
   $res = array("options" => array("regexp" => "/^ex(.*)/"));
   if(filter_var($val, FILTER_VALIDATE_REGEXP, $res)) {
      echo "Matched String!";
   } else {
      echo "Not a Matched String!";
   }
?>

実行結果

Matched String!

変数$valの値「example.com」は、パターン/^ex(.*)/(先頭が「ex」で始まる文字列)に一致するため、「Matched String!」が出力されます。もし一致しない値を渡した場合には、「Not a Matched String!」と表示され、filter_var()はfalseを返します。

まとめ

FILTER_VALIDATE_REGEXPを使えば、メールアドレスやURLなどの既定フィルターでは対応できない、独自の入力チェックルールを柔軟に実装できます。ユーザーからの入力値のバリデーションにおいて、正規表現による精密な検証が必要な場面で活用するとよいでしょう。

  1. PHPのFILTER_VALIDATE_EMAIL定数とは?メールアドレスの妥当性を検証する方法

    概要FILTER_VALIDATE_EMAILは、PHPのfilter拡張機能で提供されている定数の一つで、指定された値が有効なメールアドレスの形式に合致しているかどうかを検証するために使用します。この定数は単体では動作せず、filter_var()関数と組み合わせて利用するのが一般的です。戻り値FILTER_VALIDATE_EMAIL自体はフィルターIDを表す定数であるため、それ自身は何も値を返しません。実際の検証結果は、この定数を第2引数に渡したfilter_var()関数が返します。検証に成功した場合はメールアドレスの値そのものが返され、失敗した場合はfalseが返されます。使用例以下

  2. PHPのFILTER_VALIDATE_BOOLEAN定数とは?使い方と戻り値をわかりやすく解説

    PHPには、外部からの入力値を安全に検証するためのフィルター関数が多数用意されています。その中でもFILTER_VALIDATE_BOOLEANは、渡された値をブール値(真偽値)として評価するための定数です。filter_var()関数と組み合わせて使用することで、文字列が「真」を表す値なのか「偽」を表す値なのかを簡単に判定できます。 基本的な使い方 FILTER_VALIDATE_BOOLEANは、filter_var()関数の第2引数に指定して使用します。 <?php $var = on; var_dump(filter_var($var, FILTER_VALID