<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>