flex大小写转化

 

public function convertCurrency(currencyDigits:String):String

{

// Constants:

 

 

   var MAXIMUM_NUMBER:Number=99999999999.99;

// Predefine the radix characters and currency symbols for output:

 

 

   var CN_ZERO:String="";

   var CN_ONE:String="";

 

   var CN_TWO:String="";

   var CN_THREE:String="";

 

   var CN_FOUR:String="";

   var CN_FIVE:String="";

 

   var CN_SIX:String="";

   var CN_SEVEN:String="";

 

   var CN_EIGHT:String="";

   var CN_NINE:String="";

 

   var CN_TEN:String="";

   var CN_HUNDRED:String="";

 

   var CN_THOUSAND:String="";

   var CN_TEN_THOUSAND:String="";

 

   var CN_HUNDRED_MILLION:String="亿";

//var CN_SYMBOL = ":";

 

 

   var CN_SYMBOL:String="";

   var CN_DOLLAR:String="";

 

   var CN_TEN_CENT:String="";

   var CN_CENT:String="";

 

   var CN_INTEGER:String="";

 

 

// Variables:

 

   var integral:String; // Represent integral part of digit number.

 

   var decimal:String; // Represent decimal part of digit number.

   var outputCharacters:String=""; // The output result.

 

   var parts:Array;

   var digits:Array;

 

   var radices:Array;

   var bigRadices:Array;

 

   var decimals:Array;

   var zeroCount:int;

 

   var i:int;

   var p:int;

 

   var d:String;

   var quotient:Number;

 

   var modulus:Number;

 

 

// Validate input string:

   currencyDigits=currencyDigits.toString();

 

   if (currencyDigits == "")

   {

      Alert.show("请输入要转换的数字!");

 

      return "";

   }

 

   if (currencyDigits.match(/[^,./d]/) != null)

   {

      Alert.show("数字中含有非法字符!");

 

      return "";

   }

 

   if ((currencyDigits).match(/^((/d{1,3}(,/d{3})*(.((/d{3},)*/d{1,3}))?)|(/d+(./d+)?))$/) == null)

   {

      Alert.show("错误的数字格式!");

 

      return "";

   }

 

 

// Normalize the format of input digits:

 

   currencyDigits=currencyDigits.replace(/,/g, ""); // Remove comma delimiters.

   currencyDigits=currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning.

 

// Assert the number is not greater than the maximum number.

 

   if (Number(currencyDigits) > MAXIMUM_NUMBER)

   {

      Alert.show("超出转换最大范围!");

      return "";

   }

 

 

// Process the coversion from currency digits to characters:

 

// Separate integral and decimal parts before processing coversion:

 

   parts=currencyDigits.split(".");

   if (parts.length > 1)

   {

      integral=parts[0];

      decimal=parts[1];

 

// Cut down redundant decimal digits that are after the second.

      decimal=decimal.toString().substr(0, 2);

   }

   else

   {

      integral=parts[0];

      decimal="";

   }

// Prepare the characters corresponding to the digits:

 

  digits=new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);

   radices=new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);

   bigRadices=new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);

   decimals=new Array(CN_TEN_CENT, CN_CENT);

 

// Start processing:

   outputCharacters="";

 

// Process integral part if it is larger than 0:

 

   if (Number(integral) > 0)

   {

      zeroCount=0;

      for (var i:int=0; i < integral.length; i++)

      {

        p=integral.length - i - 1;

        d=integral.substr(i, 1);

        quotient=p / 4;

        modulus=p % 4;

 

        if (d == "0")

        {

           zeroCount++;

        }

        else

 

        {

           if (zeroCount > 0)

           {

              outputCharacters+=digits[0];

           }

           zeroCount=0;

           outputCharacters+=digits[Number(d)] + radices[modulus];

        }

 

        if (modulus == 0 && zeroCount < 4)

        {

           outputCharacters+=bigRadices[quotient];

        }

      }

      outputCharacters+=CN_DOLLAR;

   }

 

// Process decimal part if there is:

 

   if (decimal != "")

   {

 

      for (var i:int=0; i < decimal.length; i++)

      {

        d=decimal.substr(i, 1);

        if (d != "0")

        {

           outputCharacters+=digits[Number(d)] + decimals;

        }

      }

   }

 

// Confirm and return the final output string:

 

   if (outputCharacters == "")

   {

      outputCharacters=CN_ZERO + CN_DOLLAR;

   }

 

   if (decimal == "")

   {

      outputCharacters+=CN_INTEGER;

   }

   outputCharacters=CN_SYMBOL + outputCharacters;

   trace("小写转换为大写2:" + outputCharacters);

   return outputCharacters;

}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The-Venus

您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值