- ベストアンサー
7桁の半角数字かどうかのチェック
初歩的な質問で失礼ですが if (ereg("([0-9]{7})",$str)) { $strが7桁の数字であるときの処理 } else { $strが7桁の数字でないときの処理 } でうまく動作しません。 何が悪いんでしょうか。eregですか?{7}ですか?それとも俺の頭ですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#18290
回答No.1
> 何が悪いんでしょうか。eregですか?{7}ですか?それとも俺の頭ですか? eregと、貴方の頭かな(笑) 冗談なので無視してください :) $str1 = '123456'; $str2 = '1234567'; $str3 = '12345678'; $str4 = '1234567abc'; $str5 = 'ABC1234567abc'; $str2から$str5は全てeregにマッチします。 ちゃんと判定するには、 if (strlen($str) == 7 && ctype_digit($str) { //真の時の処理 } else { //偽の時の処理 } かな。
その他の回答 (2)
noname#18290
回答No.3
括弧が閉じてなかったので訂正します 誤 if (strlen($str) == 7 && ctype_digit($str) { 正 if (strlen($str) == 7 && ctype_digit($str)) { どうしてもeregを使いたければ >if (ereg("^([0-9]{7})$",$str)) { とすればよろしいかと思います。
- selenity
- ベストアンサー率41% (324/772)
回答No.2
別に if (ereg("^[0-9]{7}$",$str)) { でよいのでは?
質問者
お礼
正規表現勉強しなきゃ駄目ですね。 ありがとうございました。
お礼
ereg使わなくても出来ることに気が付かなかったです… やっぱり悪いのは俺のあた(略 ありがとうございました。