ユーザーが日本語の文字を入力できるアプリケーションに取り組んでいます。ユーザーの入力が日本語のかな (ひらがな、カタカナ、または漢字) であるかどうかを判断する方法を考え出そうとしています。
アプリケーションには、ラテン語のテキストを入力するのが不適切な特定のフィールドがあり、特定のフィールドを漢字のみ、カタカナのみなどに制限する方法が必要です。
プロジェクトは UTF-8 エンコーディングを使用します。JIS や Shift-JIS の入力を受け入れるとは思っていません。
アイデア?
ユーザーが日本語の文字を入力できるアプリケーションに取り組んでいます。ユーザーの入力が日本語のかな (ひらがな、カタカナ、または漢字) であるかどうかを判断する方法を考え出そうとしています。
アプリケーションには、ラテン語のテキストを入力するのが不適切な特定のフィールドがあり、特定のフィールドを漢字のみ、カタカナのみなどに制限する方法が必要です。
プロジェクトは UTF-8 エンコーディングを使用します。JIS や Shift-JIS の入力を受け入れるとは思っていません。
アイデア?
完全な答えはわかりませんが、ウィキペディアにリストされているカタカナとひらがなの Unicode 範囲があります。(これはunicode.orgからも入手できると思います。)
これらの範囲を入力に対してチェックすると、言語に依存しない方法で、Unicode のひらがなまたはカタカナの検証として機能するはずです。
漢字については、中国語と日本語の両方で使用される漢字が同じ範囲に含まれると予想されるため、もう少し複雑になると思いますが、ここでも間違っている可能性があります. (簡体字中国語と繁体字中国語が同じ範囲に含まれるとは期待できません...)
基本的に、各 Unicode 文字が特定の範囲内にあるかどうかを確認するだけでよいようです。Unicode コード表は良い出発点になるはずです。
.NET を使用している場合、私のMiscUtilライブラリには Unicode 範囲がサポートされています。これは原始的ですが、機能するはずです。現在手元にあるソースを持っていませんが、参考になる場合は後でこの投稿を更新して例を示します。
おおおお!私はかつてこれを持っていました...ひらがな、次にカタカナ、そして漢字の正規表現を持っていました。正確なコードを忘れたので、見に行きます。
問題を2倍にするので、正規表現は素晴らしいです。そして、私はそれを PHP で行いました。これは、非常に強力な自動問題生成用に選択したものです。
- 編集 -
$pattern = '/[^\wぁ-ゔァ-ヺー\x{4E00}-\x{9FAF}_\-]+/u';
私はこれをここで見つけましたが、それは素晴らしいものではありません...私は探し続けます
--編集-- ポータブル ハード ドライブを調べました.... 前の会社の特定のスニペットを保持していると思っていました... 申し訳ありません。