• ベストアンサー

正規表現

function CheckHalfSizeKatakana($str) { $str= mb_trim(trim($str)); $pat = "^[ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲン?゛゜ゝゞー-・]+$"; if (mb_ereg_match($pat, $str)) { return true; } else { return false; } } このようにして半角カタカナをチェックしようと考えています。間違っているでしょうか?教えてください。

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

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

>半角カタカナ以外の文字列が入ってきた場合はエラーを返したいです。 ということなら $pat = "^[。-、ヲ-゜]$"; // 。 、ヲ ゜は半角キャラクタです。 if (mb_ereg_match($pat, $str)) { return true; } else { return false; } 参考URLの文字の並び順を参考に

参考URL:
http://www.rtpro.yamaha.co.jp/RT/docs/misc/code-table.html#kana

その他の回答 (3)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

投稿して気づきましたがここは半角カタカナが全角カタカナに自動変換されるんですね No.2の 。 、ヲ ゜は半角キャラクタです。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

半角カタカナのチェックがしたいのか、すべての文字が全角カタカナのチェックがしたいのかどちらでしょうか。 半角カタカナのチェックなら $pat = "[。-、ヲ-゜]"; if (mb_ereg_match($pat, $str)) { echo "半角カタカナがあります"; } else { echo "半角カタカナはありません"; }

eccschool
質問者

補足

半角カタカナ以外の文字列が入ってきた場合はエラーを返したいです。どのようにしたら良いでしょうか?

  • cybert
  • ベストアンサー率56% (18/32)
回答No.1

間違ってないけどコードが汚い感じがしますね。 実は ^[ア-ンア-ン゛゜?゛゜ゝゞー]+$ でもOK

関連するQ&A