人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP4で半角のアルファベット小文字(a〜z),数字(0〜9),アンダーバー(_)をチェックする処理を行おうと思っています。以下のように書くと、”abcdあ”という文字列が何故か通ってしまいます。原因及び通らないような記述方法を教えてくださるようお願いします。
$rcd = ereg(”[a-z0-9_]{4,20}”, $ID);

●質問者: kawasald
●カテゴリ:コンピュータ
✍キーワード:アルファベット 数字 文字列 記述
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● jxk
●50ポイント

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm

PHP 基礎編9 - 正規表現、マッチ、置き換え、ereg、eregi、eregi_replace - SAK Streets

上記の式だと、[a-z][0-9][_]どれかを4文字以上20桁までOKという意味になるので、

”abcdあ”はOKで通ってしまいます。

多分処理としては、[a-z][0-9][_]以外をNGにするんですよね?

でしたら

ereg(”[^_a-z0-9]”, $ID) ※[a-z0-9_]以外が一文字でもあったらヒット

の式を通ったらNGにする、としてはどうでしょう。

◎質問者からの返答

なるほど〜。

原因、解決法ともにわかりやすかったです!

どうやら教えていただいた方法で解決しそうです。ありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ