PHP で正規表現を使用して特定の時刻形式で入力を検証する方法

PHPz
リリース: 2023-06-24 17:10:01
オリジナル
1558 人が閲覧しました

PHP では、特に入力データを検証する場合に、正規表現が非常に一般的に使用されます。場合によっては、特定の時刻形式で入力を検証する必要がある場合、検証を一致させるために正規表現を使用する必要があります。この記事では、正規表現を使用して特定の時刻形式を検証する方法を説明します。

ステップ 1: 時刻形式を理解する

正規表現を書き始める前に、まず時刻形式を理解する必要があります。通常、時刻形式は 12 時間制 (午前/午後) または 24 時間制で、年、月、日、秒などの情報も含まれる場合があります。一般的な時刻形式は次のとおりです。

  • #24 時間形式: HH:MM:SS
  • 12 時間形式: hh:mm:ss am/pm
  • 含まれる日付形式: YYYY-MM-DD HH:MM:SS
  • その他の可能な形式: MM-DD-YYYY HH:MM:SS

上記の形式では、HH が表します時間を 2 桁で表現したもので、hh は 12 時間形式の時間を表し、MM は分数を表し、SS は秒数を表し、am/pm は午前または午後を表します。 YYYY は年、MM は月、DD は日付を表します。

ステップ 2: 一致ルールを作成する

時刻形式を理解したら、入力時刻形式と一致する正規表現の作成を開始できます。基本的な一致ルールの一部を次に示します。

  • 24 時間形式の HH:MM:SS と一致します。
$pattern = "/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/";
ログイン後にコピー
  • 12 時間形式の hh:mm:ss と一致します。時間形式 am/pm
$pattern = "/^(0?[1-9]|1[0-2]):[0-5][0-9]:[0-5][0-9] (am|pm)$/i";
ログイン後にコピー
  • 日付を含む形式と一致します: YYYY-MM-DD HH:MM:SS
$pattern = "/^(19|20)dd[-/.](0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01]) ([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/";
ログイン後にコピー
  • 他の可能な形式と一致します。 :MM-DD-YYYY HH:MM:SS
$pattern = "/^(0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])[-/.](19|20)dd ([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/";
ログイン後にコピー

上記の正規表現では、「or」の「|」や「^」など、正規表現の特殊文字が使用されています。 「$」は文字列の先頭と一致することを意味し、「$」は文字列の末尾と一致することを意味し、「d」は数字と一致することを意味し、「01」は 0 または 1 で始まる 2 桁の数字と一致することを意味します。

ステップ 3: preg_match 関数を使用して入力を確認する

上記の一致ルールでは、preg_match 関数を使用して入力時間形式がルールに準拠しているかどうかを確認できます。 preg_match 関数は、正規表現、検証する文字列、およびオプションの一致結果の配列の 3 つのパラメータを受け入れることができます。この例では、最初の 2 つのパラメーターのみを使用しており、コードは次のとおりです。

$pattern = "/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/";
$time = "14:30:25";

if (preg_match($pattern, $time)) {
  echo "Time format is valid";
} else {
  echo "Time format is invalid";
}
ログイン後にコピー

上記のコードは、14:30:25 が正規表現に準拠しているため、「時刻形式が有効です」と出力します。 24 時間形式の数式一致ルール。

正規表現を使用して時刻形式を検証する前に、入力文字列が正当な時刻形式であることを確認する必要があることに注意してください。そうしないと、検証結果が不正確になります。同時に、実際のニーズに応じて、さまざまな正規表現ルールを柔軟に適用する必要があります。

概要

正規表現を使用して、PHP で特定の時刻形式の入力を検証することは、非常に一般的な要件です。時刻形式の検証は、時刻形式を理解し、一致ルールを記述し、preg_match 関数を使用して入力を検証することで簡単に実装できます。この記事で紹介した内容が読者の皆様のお役に立てれば幸いです。

以上がPHP で正規表現を使用して特定の時刻形式で入力を検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート