`

JS人民币大写转化

    博客分类:
  • JS
阅读更多
近验证的人民币大写转化的例子

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=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>
分享到:
评论

相关推荐

    javascript 小写金额转化成大写

    在中国,人民币大写有壹、贰、叁、肆、伍、陆、柒、捌、玖、零这十个基本数字,以及万、亿等单位。例如,123456789.01元会写作“壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元零壹分”。 在JavaScript中,我们可以创建一个...

    用JS将人民币金额转换成大写

    首先,我们需要理解人民币大写的规则。人民币的大写是按照中文字符来表示数字,具体对应关系如下: 1. 零:零 2. 一:壹 3. 二:贰 4. 3:叁 5. 四:肆 6. 五:伍 7. 六:陆 8. 七:柒 9. 八:捌 10. 九:玖 在...

    人民币大写转换

    在描述中提到的“人民币大写转换”是指将阿拉伯数字(如123456.78)转化为汉字大写(如壹拾贰万叁仟肆佰伍拾陆元柒角捌分)。这个过程涉及到一系列的规则和映射,因为每个数字都需要对应特定的汉字表示。 1. **基本...

    通用金额大小写互转(JS)

    ### 通用金额大小写互转(JS):深入解析与应用 #### 一、功能概述 在财务系统、银行软件及各类涉及货币处理的应用中,金额的大小写转换是一项基本而重要的功能。本文将深入探讨一种基于JavaScript实现的通用金额...

    货币大写金额转换插件ChinaNumToEnglishNum.js

    本文将深入探讨一个名为“ChinaNumToEnglishNum.js”的JavaScript插件,它专门用于实现这个功能,帮助开发者快速便捷地将阿拉伯数字转化为人民币大写的格式。 首先,让我们理解一下这个插件的基本工作原理。...

    js实现人民币大写金额形式转换

    function convertCurrency(num) { //转成人民币大写金额形式 var str1 = '零壹贰叁肆伍陆柒捌玖'; //0-9所对应的汉字 var str2 = '万仟佰拾亿仟佰拾万仟佰拾元角分'; //数字位所对应的汉字 var str3; //从原num值...

    js人民币数字大写转换代码

    这个工具是用纯JavaScript编写的,可以将输入的数字字符串(如"1234.56")转化为对应的中文大写金额(如"壹仟贰佰叁拾肆元伍角陆分")。 这个源码下载提供了将数字转换为中文大写的功能,适用于网页开发者在处理...

    js实现完美兼容各大浏览器的人民币大小写相互转换

    在JavaScript中,人民币大小写的相互转换是一个常见的需求,特别是在金融或者电子商务相关的应用中。这个话题主要涉及以下几个知识点: 1. **变量声明与赋值**: - `var xcc = "12.22"` 是定义一个变量 `xcc` 并...

    JS实现将人民币金额转换为大写的示例代码

    在上述提及的文档中,详细地解释了如何使用JavaScript来实现将人民币数字金额转换成大写金额的过程。 首先,需要了解的几个关键点是中文大写金额的基本组成部分。在大写金额中,数字零到九分别对应的中文大写是“零...

    JavaScript 动态将数字金额转化为中文大写金额

    ### JavaScript 动态将数字金额转化为中文大写金额 #### 概述 在日常工作中,尤其是在财务、银行或会计系统中,将数字金额转换为中文大写是非常常见的需求。这不仅可以提高系统的用户友好性,还能确保金额显示的...

    大小写转换

    对于“人民币大写转换器.exe”这个文件,根据其命名,很可能是一个执行文件,设计用于将输入的数字转换为中文大写的表示方式。在财务领域,人民币金额通常要求以中文大写表示,以避免因数字混淆而引发的错误。这种...

    将rmb数字位钱数转化为中文钱数的js函数

    本文将详细介绍一个JavaScript函数,用于将人民币(RMB)的数字形式转换为中文大写。 函数名为`ChangeRMBToCH`,其主要功能是接收一个包含逗号和可能的人民币符号(¥)的字符串,如"168,076,0.86",并将其转换为...

    POI操作excel

    对于需要将数字转化为中文大写的情况,虽然POI本身不直接支持,但可以通过自定义函数或第三方库实现。例如,可以创建一个工具类,将数字转换为中文大写,然后将转换后的字符串设置到单元格中。 以上示例展示了如何...

    实例解析angularjs的filter过滤器

    这两个过滤器分别用于将字符串转化为全小写和全大写。例如,`{{ lastName | lowercase }}` 将会把`lastName`的值转换为小写,而`{{ lastName | uppercase }}`则会将其转为大写。 2. **Number**: Number过滤器...

Global site tag (gtag.js) - Google Analytics