• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:英気表現:英字でエラーにしたいのにカナ文字もひっかかります。)

英字でエラーにしたいのにカナ文字もひっかかります。

このQ&Aのポイント
  • 正規表現で行き詰まっている場合、英字のみをエラーにしたいが、カナ文字もエラーになってしまい困っています。
  • 名前に含まれる英字の混在をエラーとして表示したいが、全角カナ文字もエラーになってしまいます。
  • 問題は理解できず、どこが間違っているのかわかりません。ご指導をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>教えて頂いたとおりに書き換えてみても、全角カナで引っかかってしまいます 内部文字コードは何になっているんでしょうか? 入力する文字が使用している文字コードと違う場合は 例えば、シフトJISになっている場合は、 mb_ereg() の前に mb_regex_encoding("SJIS"); http://jp.php.net/manual/ja/function.mb-regex-encoding.php を指定してみてください。 あと、 入力された文字を内部文字コードに変更する必要があるのかもしれません。 その場合は、 mb_convert_encoding を使ってみてください。 http://jp.php.net/manual/ja/function.mb-convert-encoding.php

sibazuke
質問者

お礼

こんばんは。 丁寧なご指導ありがとうございます。 何度も、申し訳ありません。 使用文字コードは、SJISです。 PHPで冒頭に mb_language("ja"); mb_internal_encoding("sjis"); と記述もしております。 試しに、 if( preg_match("/[a-zA-Z]/", $namekana ) ) { print "<font color=\"red\">カナに英字が混じっています。カナは全角カナで入力して下さい".$namekana."</font><br>"; } で吐き出すエラー文へ echo mb_detect_encoding("あいう"); echo "<br>フォームからの値: "; echo mb_detect_encoding("$namekana "); を付け足してみたのですが、エラー結果(カタカナがひっかかってくる)は SJIS フォームからの値: SJIS カナに英字が混じっています。カナは全角カナで入力して下さいクロチャン でした。 なんども済みません。 どうか、よろしくお願い申し上げます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2>クロチャン SJIS 環境下でmb_ereg (#1)で"クロチャン"を試してみましたが、 引っかかりません。(英字が混じっているという表示はされない、実際に英字が混じっている時は表示されます。) う~ん、ちょっとわかりません。 ゴミデータがくっついてたりしませんでしょうか

sibazuke
質問者

お礼

BLUEPIXYさま。 何度も申し訳ありませんでした。 色々弄っている間に、 mb_regex_encoding("SJIS"); がコメントアウトになっておりました。 コメントアウトをはずすと、カナは引っかからなく なりました……。 貴重なお時間を頂、申し訳ありませんでした。 色々と、ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>if( preg_match("/[a-zA-Z]/", $namekana ) ) { を if( mb_ereg("[a-zA-Z]", $namekana ) ) { にしてみたらどうでしょう

sibazuke
質問者

お礼

BLUEPIXY様。 こんばんは。 ご指導ありがとう御座いました。 教えて頂いたとおりに書き換えてみても、全角カナ で引っかかってしまいます(泣)

関連するQ&A