isZenkaku関数/isHankaku関数
- depth:
- 0
前の投稿
-
次の投稿
|
親投稿
-
子投稿なし
|
投稿日時 2010-8-9 15:21
Jiro123
投稿数: 271
旧バージョンのトピックなどで、文字列にいわゆる全角文字や半角文字(DBCSやSBCS)を含むかどうかを判定したいというのがありましたので、それらを判定する関数を作成しました。
すべて全角文字であるか、あるいはすべて半角文字であるかを判定する関数です。
前者が、isZenkaku関数、後者がisHankaku関数です。
判定方法のアイディアですが、isZenkaku関数は、チェック対象となる文字列がすべて全角文字の場合、文字列のシフトJISとしてのバイト数は、その文字列の文字数を2倍した値と等しくなるはずである、という考え方を前提にしています。
isHankaku関数は、文字列がすべて半角文字からなる場合は、文字列のバイト数と文字数は等しくなるはずである、という考え方を前提にしています。
ただし、すべて半角スペースであったり、ブランクの場合は、どちらの関数もFalseを返すようにしています。(これは、一度Trim関数で、半角スペースを取り除いていることに関係します。)
特に、isHankaku関数の場合、すべて半角スペースでもFalseになるので、使用の際は要注意です。
ダウンロード(β)にアップしていますので、ご興味のある方は、ご覧ください。
掲載期限を設けておりますので、ご留意ください。
すべて全角文字であるか、あるいはすべて半角文字であるかを判定する関数です。
前者が、isZenkaku関数、後者がisHankaku関数です。
判定方法のアイディアですが、isZenkaku関数は、チェック対象となる文字列がすべて全角文字の場合、文字列のシフトJISとしてのバイト数は、その文字列の文字数を2倍した値と等しくなるはずである、という考え方を前提にしています。
isHankaku関数は、文字列がすべて半角文字からなる場合は、文字列のバイト数と文字数は等しくなるはずである、という考え方を前提にしています。
ただし、すべて半角スペースであったり、ブランクの場合は、どちらの関数もFalseを返すようにしています。(これは、一度Trim関数で、半角スペースを取り除いていることに関係します。)
特に、isHankaku関数の場合、すべて半角スペースでもFalseになるので、使用の際は要注意です。
ダウンロード(β)にアップしていますので、ご興味のある方は、ご覧ください。
掲載期限を設けておりますので、ご留意ください。
投票数:0
平均点:0.00
投稿ツリー
- isZenkaku関数/isHankaku関数 (Jiro123, 2010-8-9 15:21)