`
cher
  • 浏览: 37247 次
  • 性别: Icon_minigender_2
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

将人民币数字转换成大写形式

阅读更多

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312"> 
 <head> 
 <title>将人民币数字转换成大写形式</title> 
 <script language="jscript"> 
function convertCurrency(currencyDigits) { 
// Constants: 
 var MAXIMUM_NUMBER = 99999999999.99; 
 // Predefine the radix characters and currency symbols for output: 
 var CN_ZERO = "零"; 
 var CN_ONE = "壹"; 
 var CN_TWO = "贰"; 
 var CN_THREE = "叁"; 
 var CN_FOUR = "肆"; 
 var CN_FIVE = "伍"; 
 var CN_SIX = "陆"; 
 var CN_SEVEN = "柒"; 
 var CN_EIGHT = "捌"; 
 var CN_NINE = "玖"; 
 var CN_TEN = "拾"; 
 var CN_HUNDRED = "佰"; 
 var CN_THOUSAND = "仟"; 
 var CN_TEN_THOUSAND = "万"; 
 var CN_HUNDRED_MILLION = "亿"; 
 var CN_SYMBOL = "人民币"; 
 var CN_DOLLAR = "元"; 
 var CN_TEN_CENT = "角"; 
 var CN_CENT = "分"; 
 var CN_INTEGER = "整"; 
  
// Variables: 
 var integral; // Represent integral part of digit number. 
 var decimal; // Represent decimal part of digit number. 
 var outputCharacters; // The output result. 
 var parts; 
 var digits, radices, bigRadices, decimals; 
 var zeroCount; 
 var i, p, d; 
 var quotient, modulus; 
  
// Validate input string: 
 currencyDigits = currencyDigits.toString(); 
 if (currencyDigits == "") { 
 alert("Empty input!"); 
 return ""; 
 } 
 if (currencyDigits.match(/[^,.\d]/) != null) { 
 alert("Invalid characters in the input string!"); 
 return ""; 
 } 
 if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) { 
 alert("Illegal format of digit number!"); 
 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("Too large a number to convert!"); 
 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.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 (i = 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 (i = 0; i < decimal.length; i++) { 
 d = decimal.substr(i, 1); 
 if (d != "0") { 
 outputCharacters += digits[Number(d)] + decimals[i]; 
 } 
 } 
 } 
 // Confirm and return the final output string: 
 if (outputCharacters == "") { 
 outputCharacters = CN_ZERO + CN_DOLLAR; 
 } 
 if (decimal == "") { 
 outputCharacters += CN_INTEGER; 
 } 
 outputCharacters = CN_SYMBOL + outputCharacters; 
 return outputCharacters; 

 </script> 
 </head> 
 <body> 
 <input id="Digits" type="text" name="Digits" size="20" /> 
 <input id="Convert" type="button" value="Convert" name="Convert" onclick="Result.value = convertCurrency(Digits.value);" /> 
 <input id="Result" type="text" name="Result" size="60" /> 
</body> 
</html>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics