zoukankan      html  css  js  c++  java
  • 把数字转换为中文大写数字

    <html>
    <head>
    <title>转换数字大小写</title>
    <meta charset="UTF-8">
    <script>
    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("空输入");
    				 return "";
    			}
    			if(currencyDigits.match(/[^,.d]/) != null){
    				 alert("输入字符串中的无效字符!");
    				 return;
    			}
    			if((currencyDigits).match(/^((d{1,3}(,d{3})*(.((d{3},)*d{1,3}))?)|(d+(.d+)?))$/) == null){
    				 alert("非法数字位数格式!");
    				 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("太大的数字无法转换!");
    			   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)] + decimal[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 type="text" size=20  id="input"/>
    <input type="button" id="btn" value="Convert" />
    <input type="text" size=60 id="output"/>
    
    <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.3.1.min.js"></script>
    <script>
    $('#btn').on('click',function (){
    
    var s=convertCurrency($('#input').val());
    //alert(s);
    $('#output').val(s);
    
    })
    </script>
    
    </body>
    </html>
    

      

  • 相关阅读:
    django--模型层(orm)-查询补充及cookie
    django-模型层(model)-多表相关操作(图书管理练习)
    Linux-正则表达式与三剑客
    网络配置命令优先级和元字符
    Linux-Nginx和NFS
    Linux-内存进程和软件安装
    乌龟棋
    倍增 Tarjan 求LCA
    切蛋糕
    HDU1505 City Game/玉蟾宫/全0子矩阵 悬线法
  • 原文地址:https://www.cnblogs.com/max-hou/p/9548942.html
Copyright © 2011-2022 走看看