我想把整数转换成小写
比如var num = "1"就把它转成 一 如果是101 就转成 一百零一请问怎么写?看了网上很多数字转大写的例子,写来写去都不对。我要求很简单 所有数字都是整数,没有小数点,就这样转换。谢谢!
比如var num = "1"就把它转成 一 如果是101 就转成 一百零一请问怎么写?看了网上很多数字转大写的例子,写来写去都不对。我要求很简单 所有数字都是整数,没有小数点,就这样转换。谢谢!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script>
function Chinese() {
var num = document.getElementById("num").value;
if (!/^\d*(\.\d*)?$/.test(num)) throw (new Error(-1, "Number is wrong!")); var AA = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九"); var BB = new Array("", "拾", "佰", "仟", "萬", "億", "圆", ""); var a = ("" + num).replace(/(^0*)/g, "").split("."), k = 0, re = ""; for (var i = a[0].length - 1; i >= 0; i--) { switch (k) { case 0: re = BB[7] + re; break; case 4: if (!new RegExp("0{4}\\d{" + (a[0].length - i - 1) + "}$").test(a[0])) re = BB[4] + re; break; case 8: re = BB[5] + re; BB[7] = BB[5]; k = 0; break; } if (k % 4 == 2 && a[0].charAt(i) == "0" && a[0].charAt(i + 2) != "0") re = AA[0] + re; if (a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k % 4] + re; k++; }
alert(re); }
</script>
</head>
<body>
<input type="text" id="num"/>
<input type="button" value="change" onclick="Chinese()">
</body>
</html>
[/url]
<html>
<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>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>
<body>
<input id="input" type="text" value="" />
<span id="output"></span>
<script>
var numChineses = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"],
units = ['','十','百','千'],
steps = ['','万','亿'];
document.getElementById('input').onchange = function(){
var val = this.value.replace(/\D+/g, '');
this.value = val;
var arr = val.split('').reverse();
var str = '';
if(arr.length > 16){
alert('数值太大');
return;
}
for(var i in arr){
if(i%4 !== 0){
var num = parseInt(arr[i]),
unit = parseInt(arr[i]) === 0 ? '' : units[i%4];
str = numChineses[num] + unit + str;
}else{
var stepIndex = Math.floor(i/4);
stepIndex = stepIndex > 2 ? (stepIndex - 2) : stepIndex;
str = numChineses[parseInt(arr[i])] + steps[stepIndex] + str;
}
}
str = str.replace(/(.)\1/g, '');
document.getElementById('output').innerHTML = str;
}
</script>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>
<body>
<input id="input" type="text" value="" />
<span id="output"></span>
<script>
//var numChineses = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'],
var numChineses = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"],
units = ['','十','百','千'],
steps = ['','万','亿'];
document.getElementById('input').onchange = function(){
var val = this.value.replace(/\D+/g, '');
this.value = val;
var arr = val.split('').reverse();
var str = '';
if(arr.length > 16){
alert('数值太大');
return;
}
for(var i in arr){
if(i%4 !== 0){
var num = parseInt(arr[i]),
unit = parseInt(arr[i]) === 0 ? '' : units[i%4];
str = numChineses[num] + unit + str;
}else{
var stepIndex = Math.floor(i/4);
stepIndex = stepIndex > 2 ? (stepIndex - 2) : stepIndex;
str = numChineses[parseInt(arr[i])] + steps[stepIndex] + str;
}
}
str = str.replace(/(.)(?=\1)/g, '');
document.getElementById('output').innerHTML = str;
}
</script>
</body>
</html>