yoshiweb.NET

Navigation

カテゴリ

アーカイブ

ActionScriptで文字判定

テキストフィールドに入力された文字が全角か?半角か?などを調べる ActionScript です。
チェックする文字の文字コードを調べ、指定した範囲にその文字が存在するかなどを調べます。// コードチェック(文字,範囲小,範囲大)
function checkCode(str, min, max) {
var len = str.length;
while (len--) {
var num = str.substr(len, 1).charCodeAt(0);
if (nummax) {
return false;
break;
}
}
return true;
}

文字列が全て半角数字か、アルファベットの大文字/小文字、半角カタカナなどをチェックしたい場合は、文字と範囲を指定して以下のようになります。
// 半角数字か?
trace(checkCode("123", 0x30, 0x39)); //true
trace(checkCode("abc", 0x30, 0x39)); //false

// 半角大文字アルファベットか?
trace(checkCode("ABC", 0x41, 0x5a)); //true

// 半角小文字アルファベットか?
trace(checkCode("abc", 0x61, 0x7a)); //true

// 半角カタカナか?
trace(checkCode("abc", 0xFF61,0xFF9F)); //false

文字列が全て半角文字か判定、文字列のバイト数を調べる応用例です。// 文字列が全て半角文字かを判定
function checkHalf(str){
return (checkCode(str, 0x00, 0x7f) || checkCode(str, 0xFF61,0xFF9F)) ? true : false;
}
trace(checkHalf("AAA")); //true
trace(checkHalf("AあA")); //false

// 文字列のバイト数を調べる
function getStrBytesTotal(str) {
var cnt = 0;
var len = str.length;
while (len--) {
(checkHalf(str.substr(len, 1))) ? cnt++ : cnt += 2;
}
return cnt;
}
trace(getStrBytesTotal("ああああ")); //8


全角→半角変換を作ろうと思ったら、JavaScriptで公開してくれている人がいました。
AOK - 全角英数字・記号を半角に置換

半角カナの変換は1文字ずつ置換した方がよさそう...。
JavaScript例文辞典 - 半角カナから全角カナへ変換する
JavaScript例文辞典 - 半角カナから全角カナへ変換する(濁点等対応版)

IT用語辞典 - ASCII文字コード
Flash-ML - [flash:25713] Re:半角と全角の判定
Flash-ML - [flash:25698] タグを消去して単純なテキスト文章にする方法
GAC - Flash[6537] 半角
とほほ - 漢字コードについて

<追記>
2006/04/29 - AS2.0版は Flash OOP の 自作クラス公開・共有環境プロジェクト で公開しています。※プロジェクトは自然消滅しました(?)。
2005/04/07 - 「文字コード判定」という言い方は「 Shift-JIS か UTF-8 かを判断するスクリプト(?)」と思われるので、文章を少し改訂。
2005/03/17 - 全角半角変換等のリンク追加

2005年02月15日 - yoshiweb - コメント3件