- PR -

ひらがな、漢字の区別について。

1
投稿者投稿内容
mituo
会議室デビュー日: 2002/10/08
投稿数: 13
投稿日時: 2002-11-07 14:00
VB.NETでもC#のどちらでもいいのですが、
入力された文字が、ひらがなや漢字を区別したいのですが、
わかりません。
その方法はどうすればよろしいのでしょうか?

ご存知の方がおられましたらどうか教えてください。
AYA
会議室デビュー日: 2002/10/29
投稿数: 10
投稿日時: 2002-11-07 15:54
こんにちは、mituoさん。

ひらがな、漢字などの文字種別判定をご希望との事ですが、
正規表現を利用すれば判定可能です。

******************************************************************
もっと簡単な方法がある場合は、どなたかフォローお願いします。
私もぜひ知りたいので・・・

なお、正規表現ってなに?というご質問は、あらかじめギブアップ宣言を
行っておきます。ごめんなさい。(^-^;;
******************************************************************

if(System.Text.RegularExpressions.Regex.IsMatch(文字列, パターン)){
//OK
}else{
//NG
}

っていうイメージなのですが、.NETの正規表現ライブラリは、
XMLSchemaの正規表現に準拠しているようです。
XMLSchemaの正規表現はUniCodeのブロックの判定などに対応しています。
よって、下記のような表現が可能です。

\p{Isブロック名}

例として、ひらがなチェックであれば下記のようなパターンでOKだと
思います。
"^\p{IsHiragana}+$"
(一応下記のURLでブロックに含まれている文字を確認してみてください)

ブロックと文字の対応は下記のURLを参照してください。
http://www.unicode.org/charts/

そして、そのブロックを正規表現で利用するときのブロック名は下記の
URLを参照してください。
http://www.w3.org/TR/xmlschema-2/

漢字判定に関しては、日本人が利用する一般的な漢字を網羅している
ブロックが良くわからないので、どなたかフォローお願いします。(^-^;;
(IsCJKUnifiedIdeographsかな?無責任だなぁ。)




余談ですが、.NETの正規表現とJavaScriptの正規表現は記述方式が違います。
(VisualStudioもちがいますが・・・)
つまり、JavaScriptでは\p{IsKatakana}などのパターンが利用できません。
クライアントサイドでカタカナチェックが行いたい時に、
RegularExpressionValidatorに\p{IsKatakana}を指定しても正しく動作
しませんので、ご注意ください。

こういうケースの場合はCustomValidatorを利用して、クライアントサイドと
サーバサイドを別々のチェックを行うか、[ァ-ヶ]などを利用して共通に
するか、どちらかだと思います。


間違っているようでしたら、どなたかフォローお願いします。
ではでは。
ぷさいくろう
ぬし
会議室デビュー日: 2006/08/30
投稿数: 1034
投稿日時: 2006-10-11 13:43
文字コードをみる
ベテラン
会議室デビュー日: 2005/05/16
投稿数: 85
お住まい・勤務地: 千葉県在住
投稿日時: 2006-10-12 18:53
ぶさいくろうさんと同じで、文字コードを見るに一票。

JISコードなら2420〜247Fがひらがな・・・の筈。
※手元のFMRシリーズコードブックでは、そう書かれてます(てか古!!
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-10-12 19:11
引用:

梶さんの書き込み (2006-10-12 18:53) より:

ぶさいくろうさんと同じで、文字コードを見るに一票。


しむら〜!半濁点!はんだくてん!
今回も2002年とはまた古いスレを上げてきましたね
# あ、責めてるわけじゃないですよ
スレ主さんは見てるんでしょうか。

引用:

JISコードなら2420〜247Fがひらがな・・・の筈。
※手元のFMRシリーズコードブックでは、そう書かれてます(てか古!!


昨今の新人君にはJISコードとか言っても通じなさそうです。
その前にシフトJISとか言っても通じなさそうです。
だからと言ってUnicodeで通じるかというと… orz

たぶん「ひらがな」「カタカナ」と「それ以外の全角文字」(全角って死語?)を分け
たかったのだと推測してみます。
まぁ結局のところ文字コードで見るとか、ひらがなカタカナの文字を集めたテー
ブルというか文字列を一個持っておいて、その中に存在するかどうかとかでチェッ
クするのが妥当なんじゃないでしょうかね。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
1

スキルアップ/キャリアアップ(JOB@IT)