AS3 で 継承 のサンプルスクリプト*1を使って 3桁ずつコンマをつける 処理を考えた メモ

[numberFormatter.fla] , [numberformatter.as] <- [csNumberFormatter.as]

//numberFormatter.fla
var myCsNumberFormatter:csNumberFormatter = new csNumberFormatter(12); 
trace (myCsNumberFormatter.format(123456789));

//結果 000,123,456,789			   
//numberFormatter.as
//任意の数列を任意の桁数で出力
package{
	public class numberFormatter
	{
		public var keta:Number
		
		public function numberFormatter(ketaNum:Number) //コンストラクタ
		{
			keta = ketaNum;
		}
		
		public function format(value:Number) : String  //頭に0を足して要求された桁数を満たす
		{
			var str:String = "" + value ;
			
			while(str.length < keta)
				str = "0" + str;
			
			return str;
		}
	}
}
//csNumberFormatter.as
//3桁ずつ","を加える拡張
package{
	public class csNumberFormatter extends numberFormatter
	{
		public function csNumberFormatter(ketaNum:Number) //コンストラクタ
		{
			super(ketaNum);
		}
		
		override public function format(value:Number) : String //3桁づつ","を入れる
		{
			var str:String = super.format(value);
			var str2:String = "";
			for (var i:int = 0; i < str.length; i++)
			{				
				if (i % 3 == 0 && i != 0)
				{
					
					str2 = str.charAt((str.length-1) - i) + "," + str2;
				}
				else
				{
					str2 = str.charAt((str.length-1) - i) + str2;
				}
			}
			return str2;
		} 
	}
}


正規表現を使わない場合、これよりスマートに書くにはどうすればいいのか。
正規表現だとJavaScriptで数字3桁ごとにコンマを打つ|JavaScriptプログラムメモ|プログラムメモこんな感じなのかな。