`
robinrain
  • 浏览: 60430 次
  • 性别: Icon_minigender_1
  • 来自: 威海
社区版块
存档分类
最新评论

JS金额大小写转换

 
阅读更多
<script>
	function regInput(reg)
	{
		var srcElem = event.srcElement
		var oSel = document.selection.createRange()
		oSel = oSel.duplicate()
		 
		oSel.text = ""
		var srcRange = srcElem.createTextRange()
		oSel.setEndPoint("StartToStart", srcRange)
		var num = oSel.text + String.fromCharCode(event.keyCode) + srcRange.text.substr(oSel.text.length)
		event.returnvalue = reg.test(num)
	}
	
	function chineseNumber(num)
	{
		if (isNaN(num) || num > Math.pow(10, 12)) return ""
		var cn = "零壹贰叁肆伍陆柒捌玖"
		var unit = new Array("拾百千", "分角")
		var unit1= new Array("万亿", "")
		var numArray = num.toString().split(".")
		var start = new Array(numArray[0].length-1, 2)
		function toChinese(num, index)
		{
			var num = num.replace(/\d/g, function ($1)
			{
				return cn.charAt($1)+unit[index].charAt(start--%4 ? start%4 : -1)
			})
			return num
		}
		for (var i=0; i<numArray.length; i++)
		{
			var tmp = ""
			for (var j=0; j*4<numArray[i].length; j++)
			{
				var strIndex = numArray[i].length-(j+1)*4
				var str = numArray[i].substring(strIndex, strIndex+4)
				var start = i ? 2 : str.length-1
				var tmp1 = toChinese(str, i)
				tmp1 = tmp1.replace(/(零.)+/g, "零").replace(/零+$/, "")
				tmp1 = tmp1.replace(/^壹拾/, "拾")
				tmp = (tmp1+unit1[i].charAt(j-1)) + tmp
			}
			numArray[i] = tmp
		}
		numArray[1] = numArray[1] ? numArray[1] : ""
		numArray[0] = numArray[0] ? numArray[0]+"元" : numArray[0], numArray[1] = numArray[1].replace(/^零+/, "")
		numArray[1] = numArray[1].match(/分/) ? numArray[1] : numArray[1]+"整"
		return numArray[0]+numArray[1]
	}
	function aNumber(num)
	{
		var numArray = new Array()
		var unit = "亿万元$"
		for (var i=0; i<unit.length; i++)
		{
			var re = eval_r("/"+ (numArray[i-1] ? unit.charAt(i-1) : "") +"(.*)"+unit.charAt(i)+"/")
			if (num.match(re))
			{
				numArray[i] = num.match(re)[1].replace(/^拾/, "壹拾")
				numArray[i] = numArray[i].replace(/[零壹贰叁肆伍陆柒捌玖]/g, function ($1)
				{
					return "零壹贰叁肆伍陆柒捌玖".indexOf($1)
				})
					numArray[i] = numArray[i].replace(/[分角拾百千]/g, function ($1)
				{
				return "*"+Math.pow(10, "分角 拾百千 ".indexOf($1)-2)+"+"
				}).replace(/^\*|\+$/g, "").replace(/整/, "0")
				numArray[i] = "(" + numArray[i] + ")*"+Math.ceil(Math.pow(10, (2-i)*4))
			}
			else numArray[i] = 0
		}
		return eval_r(numArray.join("+"))
	}
</script>

 

 

<input id=up size=60 onkeypress="regInput(/^\d{0,12}(\.\d{0,2})?$/)"><button onclick="lw.value = chineseNumber(up.value)">转为大写</button><br>
<input id=lw size=60 value="壹千壹百壹拾壹元整"><button onclick="up.value = aNumber(lw.value)">转为小写</button>

 

分享到:
评论

相关推荐

    JS转换金额大小写,适合用于工资系统,JS文件,可以学习一下,个人整合的

    在提供的`金额大小写转换.js`文件中,可能包含了以下关键步骤: 1. **定义中文数字和单位**:首先,你需要创建两个对象,分别存储中文的数字(零到九)和货币单位(如元、角、分)。例如: ```javascript var ...

    金额大小写转换

    纯js 数字转汉字

    风尚云网前端学习-vue后台管理之金额大小写转换实例【精准到分0.01】保姆级教程

    风尚云网前端学习-vue后台管理之金额大小写转换实例【精准到分0.01】保姆级教程 适合人群:正在工作以及懂后台管理 不适合人群:新人小白

    jsp页面调用applet实现人民币的大小写转换.docx

    该实现方法通过在JSP页面中嵌入一个Applet,使用JavaScript与Applet进行交互,实现实时的人民币大小写转换。 一、JSP页面调用Applet的实现 在JSP页面中,使用 `;charset=gb2312" %&gt;` 指定页面的字符编码为GB2312,...

    人名币大小写转换js代码

    "人名币大小写转换js代码"这个主题,核心就是利用JavaScript编写函数,将输入的数字(通常是小写)转换为对应的中文大写人民币格式。这涉及到数字的处理、字符串的拼接以及中文字符的使用。 在实现这个功能时,首先...

    人民币大小写转换,整带整和零

    人民币的大小写转换主要包括以下几个方面: 1. **数字到汉字的转换**:人民币的大写形式使用汉字进行表示,例如1(壹)、2(贰)、3(叁)等,而小写则是阿拉伯数字。转换过程中,每个数字都有对应的汉字形式,包括...

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

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

    大小写货币转换.rar

    "大小写货币转换"这个主题主要关注如何将数字金额转换成规范的中文大写形式,以符合金融和会计行业的要求,通常用于支票、发票和其他财务文档。在JavaScript(JS)中实现这种功能,可以借助于字符串处理和自定义函数...

    JS人民币转换大小写人民币大小写转换

    在JavaScript(JS)编程中,有时我们需要将数字格式的人民币金额转换为中文大写的表示方式,这在财务系统或者电商平台上十分常见。人民币大写转换主要用于财务报表、发票和银行单据,确保金额的准确性和规范化。下面...

    大小写转换

    在IT行业中,大小写转换是一项基础且实用的操作,尤其在编程、数据处理和文本格式规范等方面经常被用到。标题“大小写转换”提示我们,这里主要涉及的是字符的大小写形式之间的转换技术。描述中提到“直接输入阿拉伯...

    js金额大小写

    var chineseValue=""; // 转换后的汉字金额 var String1 = "零壹贰叁肆伍陆柒捌玖"; // 汉字数字 var String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; // 对应单位

    js中文money数字大写转换

    功能揪取:1200元转换为 壹仟贰佰元 AmountInWords(1200,x)= 壹仟贰佰元 其中x为 小数点后四舍五入的位数

    金额大小写换算.

    在IT行业中,尤其是在财务软件和办公自动化领域,金额大小写转换是一个常见的需求。这个小工具显然是为了解决这个问题,将数字金额转换成我们日常在发票、支票等正式财务文档中使用的中文大写数字。在中文会计和法律...

    关于金额大,小写转换的问题.rar

    通过以上的讲解,你应该对如何使用JavaScript进行金额大小写转换有了基本的理解。实际编写代码时,可能还需要考虑性能优化、错误处理等细节,确保转换的准确性和用户体验。希望这个解答对你有所帮助,如果你有更多...

    关于金额大,小写转换的问题

    本篇文章将深入探讨如何在JavaScript中进行金额大小写的转换,并提供相关实践方法。 在财务系统中,金额通常分为两种格式:大写和小写。小写金额是常规的数字形式,如1234.56;而大写金额则是为了防止篡改,将数字...

    JS实现人民币小写转大写

    在给定的文件"人民币大小写转换JS"中,应该包含了实现这个功能的具体JavaScript代码,你可以通过阅读和学习这个代码,进一步理解上述知识点的应用。通过这样的实践,不仅可以加深对JavaScript字符串和对象操作的理解...

    正则一则 将金额转换成人民币大写的代码

    在本文中,我们将探讨一个使用正则表达式将金额转换为中文大写的代码实现。 这段代码的核心是一个名为`ConvertToChineseMoney`的公共静态方法,它接受一个`double`类型的参数`money`,表示要转换的金额。首先,该...

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

    在网页开发中,处理涉及金额大小写转换的功能非常常见,尤其是在需要生成财务报表或打印输出时。由于不同的浏览器可能对JavaScript的支持存在差异,确保代码在所有浏览器中正常运行,成为了开发者的必要考虑。接下来...

Global site tag (gtag.js) - Google Analytics