- ベストアンサー
文字列から英数字の判別
PHP で質問です word1変数内に英数字がある場合以外はテキスト(変数名kana1) への入力必須をのエラーをだしたいのですが、うまくいきません。 基本動くのですが、カタカナのチ以降の文字を入れると通ってしまいます。 何かいけないでしょうか? if ($kana1=="") { if(preg_match("/[a-z0-9]+/",$word1)) {}else{ echo "<h2 class="subtitle">ふりがなを入力してください。</h2><br />"; $err_flg = "1"; } }
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
mb_internal_encoding()で正しいエンコードを指定してください。 できればUTFにして、 preg_match()もuを指定してやった方がよいと思います。
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.3
うーん・・・通らないと思いますが・・・ <? mb_internal_encoding("UTF-8"); $word1="タチツテト"; if(preg_match("/[a-z0-9]+/iu",$word1)) print "match"; ?>
- think49
- ベストアンサー率59% (285/482)
回答No.2
^$ がないので部分一致になっています。 if(preg_match("/^[a-z0-9]+$/",$word1))
質問者
お礼
ありがとうございます しかし部分一致で大丈夫です。 変数$word1内に英数字が一文字でもあれば$kana1未入力 エラーチェックをしないで 英数字一文字でもない場合は、$kana1未入力エラーチェックする感じです。
お礼
ありがとうございます しかし状況下わらずです。 やはり カタカナのチ以降の文字を入れると カタカナ チ以降を英数字と判断します。
補足
すみません。できました。 ファイル自体がsjisでとおりませんでした。単純なミスでした。