« 日本ブログ大賞に応募してみた、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;ivar _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;
}
投稿者 ekn : February 17, 2006 10:32 AM
トラックバック
このエントリーのトラックバックURL:
http://ekndesign.com/cgi/mt/mt-tb.cgi/250


