PHP5の質問です。

ある変数に入っている文字列を、正規表現でその変数の判定をしようと考えています。


有効な文字は、半角カタカナ, 全角カタカナ, ひらがなの3種のみ。
以下の文字がひとつでも入っていたら、 false を返す。

全角半角ともに数字の入っている文字列は無効。
記号が入っている文字列は無効。
空白, タブ, 改行など特殊文字が入っている文字列は無効。
漢字が入っているとその文字列は無効。


このような判定はどのような関数を組み合わせればいいですか?
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/11/21 01:30:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:kn1967 No.1

回答回数2915ベストアンサー獲得回数301

ポイント60pt
mb_ereg("^[ア-ン゙ア-ンーあ-ん]+$", 変数名)

^ 先頭から

$ 末尾まで

[ と ] の中に含まれる文字だけ

という条件に当てはまらなければfalse


注意点としては

濁点や半濁点、長音記号なども含み忘れないようにすることと

文字コードを統一(下記コマンドも参照)しておくこと。

mb_regex_encoding

mb_internal_encoding

id:seadwell

回答ありがとうございます。

> 濁点や半濁点、長音記号なども含み忘れないようにすること

半角カタカナの'゚'や'ー'も入れたほうがいいということですか?

mb_ereg("^[ア-ン゙゚ーア-ンーあ-ん]+$", 変数名)

こんな形?

2008/11/14 15:21:50

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません