- ベストアンサー
特定なフォーマットで入力されているかチェックするには
phpでフォームで入力された文字列が特定な フォーマットで入力されているか チェックする事ができますか? 例 XXX-XX-XXX X:半角英数字 -:半角ハイフン 上記のフォーマット以外で入力されている場合には エラーにしたいのですが。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
正規表現のパターンを使ってフォーマットを表せばできます。 1文字以上の半角英数字の繰り返しなら[a-zA-Z0-9]+になるので正規表現パターンは [a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+ になります。 これが行の先頭( ^ )から最後( $ )まで全ての部分でマッチすようにということなので ^[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+$ これをPHPのpreg関数で使って $num = "1DD23-45aa6-7Rg89"; if (preg_match("/^[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+$/", $num)) { echo "フォーマットOK"; } else { echo "フォーマットが違います"; } みたいにします。
その他の回答 (1)
- papillon68
- ベストアンサー率61% (42/68)
rabu_chihahaさん、こんにちは。 正規表現を使ってみてはいかがでしょうか。 if(! preg_match("/^[0-9a-z][0-9a-z][0-9a-z]\-[0-9a-z][0-9a-z]\-[0-9a-z][0-9a-z][0-9a-z]$/i", $str)) { print "フォーマットが違います。"; exit; } のような形です。
お礼
ありがとうございます。 正規表現を使えばいいのですね。 できました。 またよろしくお願いいたします。
お礼
ありがとうございます。 大変わかりやすく書いていただいて よくわかりました。 ありがとうございました。