您的位置:首页 > 其它

Flex 日期、电话号码、数字、邮编、货币格式化相关

2010-12-22 20:58 344 查看
基本的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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: