重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

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

A 回答 (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- …
    • good
    • 0

投稿して気づきましたがここは半角カタカナが全角カタカナに自動変換されるんですね


No.2の 。 、ヲ ゜は半角キャラクタです。
    • good
    • 0

半角カタカナのチェックがしたいのか、すべての文字が全角カタカナのチェックがしたいのかどちらでしょうか。


半角カタカナのチェックなら
$pat = "[。-、ヲ-゜]";
if (mb_ereg_match($pat, $str)) {
echo "半角カタカナがあります";
} else {
echo "半角カタカナはありません";
}

この回答への補足

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

補足日時:2006/10/06 09:42
    • good
    • 0

間違ってないけどコードが汚い感じがしますね。


実は
^[ア-ンア-ン゛゜?゛゜ゝゞー]+$
でもOK
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!