PHPで現在、入力フォームを作成しています。
フォーム内で半角数字のみの入力かチェックしたいと思っています。
チェック仕方としてどういうチェックが良いでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答1件
0
ベストアンサー
基本的にはPHPで用意されているpreg_match使用し、
正規表現を用いてチェックを行うのがいいと思います。
その他の方法も参考として記載しておきます。
`
<?php //$age = $_POST['age']; $age = "31"; /** * preg_matchはPCRE正規表現によるマッチングを行います。 * 「^\d+$」は「先頭から最後まで1文字以上の数字が続く」という意味になります。 * そして数字以外の文字列が含まれないようにパターン修飾子Dを最後に指定しています * パターン修飾子Dを指定しないと文字列の最後に改行コードがある場合にマッチしてしまい * 数字以外という条件が崩れます。 */ if (preg_match('/^\d+$/D', $age)) { echo 'OK' . "\n"; } // \dは[0-9]とも書けます。 if (preg_match('/^[0-9]+$/D', $age)) { echo 'OK' . "\n"; } /** * strspnは第1引数に指定した文字列の中の先頭から何文字目まで * が第2引数で指定した文字かがわかります。 * strlenは文字列の長さを返却します。 * strspnとstrlenを組み合わせて半角数字が文字列全体の長さと * 一致するか調べています。 */ if (strspn($age, "1234567890") == strlen($age)) { echo 'OK' . "\n"; } /** * ctype_digitは与えられた文字列のすべての文字が * 半角数字であるかどうか調べます。 * $ageが文字列の為、この関数でチェックすることが可能です。 * 但し、$ageが文字列以外の場合はこの条件は成立しません。 */ if (ctype_digit($age)) { echo 'OK' . "\n"; } ?>`
投稿2014/06/04 07:38
総合スコア135
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。