本文转载自:http://blog.163.com/zhj_mouse/blog/static/64118537201111242154764/
基本的Flex格式化包含CurrencyFormatter(货币格式化)、PhoneFormatter(电话号码格式化)、NumberFormartter(数字格式化)、DateFormatter(日期格式化)、 ZipCodeFormatter(邮编格式化)。他们分别都是位于mx.formatters包下,且都是继承与 mx.formatters.formatter类。
使用flex格式化的方法有两种:
1.在mxml code文件中的<fx:Declarations>中声明相应的<mx:格式化类型 id=""/> ,在通过其id属性调用其format方法。
2.在mxml code文件中的<mx:script>中声明相应的格式化类型对象 如:var df:DateFormatter = new DateFormatter();
1.货币格式化 Formatter Currency
a). <mx:CurrencyFormatter id="cf" currencySymbol="$" precision="2" thousandsSeparatorTo="," decimalSeparatorTo="." useThousandsSeparator="true" useNegativeSign="true" alignSymbol="left" />
<mx:Label text="{cf.format(500)}" /> 运行输出结果为$500.00
b). var cf:CurrencyFormatter = new CurrencyFormatter();
cf.currencySymbol = "RMB";//设置转换的货币符号
cf.alignSymbol = "right";//设置货币符号的位置
cf.precision = 2;//设置精确位数
cf.thousandsSeparatorTo = ",";//设置千位的分隔符
cf.decimalSeparatorTo = ".";//设置小数的分隔符
cf.useThousandsSeparator = true;//这个默认为false ,需要手动设置才能起效
cf.useNegativeSign = true;//如果为true 负数就直接在前面加-
trace(cf.format(1001.345));
运行输出结果为1,001.34RMB;
2.电话号码格式化 Formatter Phone
a). <mx:PhoneFormatter id="pf" areaCode="888" formatString="###-####"/>
<mx:Label text="{pf.format(1234567)}"/> 运行结果为 (888)123-4567;
b). var pf:PhoneFormatter = new PhoneFormatter();
pf.areaCode = 888;//设置区号
pf.formatString = "###-####";//设置转换号码格式 如果输入123 则输出 123-0000
trace(pf.format(1234567)); 运行输出(888)123-4567;
3.日期格式化 Formatter Date
a). <mx:DateFormatter id="df" formatString="MMMM D,YYYY"/>
<mx:Label text="{df.format(new Date())} "/>运行结果为 十一月 25,2010;
b). /**
* Y 代表Year YY = 10;YYYY = 2010; YYYYY = 02010;
* M 代表Month M = 11; MMMM = 十一月
* D 代表Day D = 4; DD = 04;
* E 代表Day in week E = 1; EE = 01; EEE = Mon; EEEE = Monday;
* A 代表 am/pm
* J 代表Hour in day(0-23)
* H 代表Hour in day(1-24)
* K 代表Hour in am/pm(0-11)
* L 代表Hour in am/pm(1-12)
* N 代表Minute in hour N = 3; NN = 03;
* S 代表Second in Minute SS = 30;
*/
var df : DateFormatter = new DateFormatter();
df.formatString = "YYYY-M-DD JJ:NN:SS";
trace(df.format(new Date())); 运行结果为2010-11-25 16:02:54;
4.数字格式化 Number Formatter
a). <mx:NumberFormatter id="nf" precision="0" decimalSeparatorTo="." thousandsSeparatorTo="," rounding="up" useNegativeSign="true" useThousandsSeparator="true"/>
<mx:Label text="{nf.format(6000.55)}"/>运行结果6,001;
b). var nf:NumberFormatter = new NumberFormatter();
nf.precision = 0;//设置小数点后面位数
nf.decimalSeparatorTo = ".";//设置小数点的分隔符号
nf.thousandsSeparatorTo = ",";//设置千位的分隔符号
nf.rounding = "down";//根据小数向上约等于还是向下约等于
nf.useNegativeSign = "true";//负数 前面加"-";
nf.useThousandsSeparator = "true";//运用使用分隔符分隔千位
trace(nf.format(6000.55));运行结果6,000;
5.邮政编码格式化 ZipCode Formatter
a).<mx:ZipCodeFormatter id="zcf" formatString="##### ####"/>
<mx:Label text="{zcf.format(123456789)}" />运行结果12345 6789;
b). var zcf:ZipCodeFormatter = new ZipCodeFormatter();
zcf.formatString = "#####-####";//注意 ZifCodeformatter的形式只限于 "#####-####" ||"##### ####" ||"#####"|| "### ###" || "###-###"这么几种,如果要实现其他方式需要重写format方法。
trace(zcf.format("123456789"));运行结果12345-6789;