123456789を→123,456,789のように、一般的な金額表示にフォーマットします。
function number_format(str, slcNum, sepStr) {
if(isNaN(val)){
var strVal:String = str.toString();
}
var strLngth:Number = strVal.length;
var slcTms:Number = strLngth/slcNum;
var isSrp:Number = strLngth%slcNum;
var rsltAry:Array = new Array();
var rsltStr:String = "";
var times:Number = 0;
for ($i=slcTms; $i>1; $i--) {
var slcPnt:Number = strLngth-(times*slcNum);
rsltAry[$i] = strVal.slice(slcPnt-slcNum, slcPnt);
rsltStr = sepStr+rsltAry[$i]+rsltStr;
times++;
}
if(isSrp>0){
rsltStr = strVal.slice(0,isSrp)+rsltStr;
}else{
rsltStr = strVal.slice(0,slcNum)+rsltStr;
}
return rsltStr;
}
if(isNaN(val)){
var strVal:String = str.toString();
}
var strLngth:Number = strVal.length;
var slcTms:Number = strLngth/slcNum;
var isSrp:Number = strLngth%slcNum;
var rsltAry:Array = new Array();
var rsltStr:String = "";
var times:Number = 0;
for ($i=slcTms; $i>1; $i--) {
var slcPnt:Number = strLngth-(times*slcNum);
rsltAry[$i] = strVal.slice(slcPnt-slcNum, slcPnt);
rsltStr = sepStr+rsltAry[$i]+rsltStr;
times++;
}
if(isSrp>0){
rsltStr = strVal.slice(0,isSrp)+rsltStr;
}else{
rsltStr = strVal.slice(0,slcNum)+rsltStr;
}
return rsltStr;
}
number_format(フォーマットする数値(文字列),分割単位 ,区切り文字);
のようにコールすれば変換された値が返されます。
例)var rslt=number_format(123456789, 3,",");
trace(var);
123,456,789となります。
一応、金額のフォーマット用なので、後ろの文字から分割単位ごとに区切っていますが、他にも例えば
var rslt=number_format(123456789, 4,"/");
【結果】1/2345/6789
とかもできます。
タグ:actionscript