flex大小写转化

来源:互联网 发布:淘宝主图素材红色 编辑:程序博客网 时间:2024/06/05 18:06

 

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;

}

 

 

原创粉丝点击