« 日本ブログ大賞に応募してみた、POQUE.JP。 | メイン | livedocs : Selection.setFocus メソッド »

重要なお知らせ: このブログの更新は終了しました!詳しくはこちら "ブログ移転しました。" をご覧ください。

Actionscript:半角全角(1byte2byte文字)の切り分けてobjectに

AD:ロリポップのドメインは選べる全85種類!!

シンプルなutilネタ

Stringを渡すと1byte2byte文字に分けてArrayで返す。

”あああaaああa”なら結果は

[
{text:"あああ",mode:2},
{text:"aa",mode:1},
{text:"ああ",mode:2},
{text:"a",mode:1}
]



function string2Object(_text:String):Array{

if(_text == undefined) return undefined;

var _textGroupCnt:Number = 0;
var _tmpNum:Number = 0;
var _byteMode:Number;

var _resArray:Array = [];

var textLength:Number = _text.length;
for (var i=0;i var _o = _text.charCodeAt(i);

if (_o>0xff) _byteMode = 2;
else _byteMode = 1;

if(i == 0){
var _tmpbyteMode =_byteMode;
}else if(_byteMode != _tmpbyteMode ){
var _textStartCnt = _tmpNum;
var _textCnt = i - _textStartCnt;
var tmpObj = {text:_text.substr(_textStartCnt,_textCnt),mode:_tmpbyteMode};
_resArray.push(tmpObj);
_tmpNum = i;
_tmpbyteMode = _byteMode;
_textGroupCnt++;
}
if(i == textLength - 1){
var tmpObj = {text:_text.substr(_tmpNum),mode:_tmpbyteMode};
_resArray.push(tmpObj);
}
}
return _resArray;
}


はてなにブックマーク  Yahooにブックマーク  users Livedoorにブックマーク  バザールにブックマーク  del.icio.usにブックマーク   価格比較のその価格OK?

投稿者 ekn : February 17, 2006 10:32 AM

トラックバック

このエントリーのトラックバックURL:
http://ekndesign.com/cgi/mt/mt-tb.cgi/250

コメント