`

JavaScript 货币格式化

阅读更多

在金融系统或财务系统中,需要将输入的数值转换为货币,方便用户查看  可以通过javascript进行实现

要求:

       1、不能使用中文输入   style="ime-mode: disabled"

       2、有焦点左对齐,无焦点右对齐并显示千分位

            text-align: right

       3、不允许粘贴非法值  调用onpaste()

       4、非数值

           不限制: 8 退格

                        46 删除

                        37-40 方向键

                        48-57 小键盘数字

                        96-105 大键盘数字

                        110,190 大小键盘小数点

                        189,,109 负号

                        13 回车

 

代码如下:

<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>templates</title>
		<script type="text/javascript">
			//判断输入是否合法的ascii
			function moneyKeyDown() {
				var k = window.event.keyCode;
				return isValidNum(k);
			}

			function isValidNum(k) {
				return ((k == 8) || (k == 46) || (k >= 37 && k <= 40) || (k >= 48 && k <= 57) || (k >= 96 && k <= 105) || (k == 110) || (k == 190) || (k == 189) || (k == 109) || (k == 13));
			}

			//不允许粘贴非法值
			function moneyPaste() {
				var d = clipboardData.getData("Text");
				for(var i = 0; i < d.length; i++) {
					var c = d.charCodeAt(i);
					if(!isValidNum(c)) {
						return false;
					}
				};
			}

			function outputMoney(number) {
				number = number.replace(/\,/g, "");
				if(number == "")
					return "";
				if(number < 0)
					return '-' + outputDollars(Math.floor(Math.abs(number) - 0) + '') + outputCents(Math.abs(number) - 0);
				else
					return outputDollars(Math.floor(number - 0) + '') + outputCents(number - 0);
			}

			function outputDollars(number) {
				if(number.length <= 3)
					return (number == '' ? '0' : number);
				else {
					var mod = number.length % 3;
					var output = (mod == 0 ? '' : (number.substring(0, mod)));
					for( i = 0; i < Math.floor(number.length / 3); i++) {
						if((mod == 0) && (i == 0))
							output += number.substring(mod + 3 * i, mod + 3 * i + 3);
						else
							output += ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);
					}
					return (output);
				}
			}

			function outputCents(amount) {
				amount = Math.round(((amount) - Math.floor(amount) ) * 100);
				return (amount < 10 ? '.0' + amount : '.' + amount);
			}
		</script>
	</head>
	<body>
		<center>
			<input type="text" name="money1" onkeydown="return moneyKeyDown()"
			onpaste="return moneyPaste()"
			onfocus="this.style.textAlign='left';this.value=this.value.replace(/,/g,'')"
			onblur="this.style.textAlign='right';this.value=outputMoney(this.value)"
			style="ime-mode: disabled;text-align: right" />
		</center>
	</body>
</html>

 

分享到:
评论

相关推荐

    javascript数字格式化为货币字符,数字格式化为大写货币

    在JavaScript中,对数字进行货币格式化的处理是非常常见的需求,尤其是在财务或电子商务相关的应用程序中。以下是对给定代码片段的深入解析和知识点总结。 #### 标准货币格式化函数 `formatCurrency` 此函数实现了...

    pretty-money::money_with_wings:一个很小JavaScript货币格式化库

    一个很小JavaScript货币格式化库。 小的。无依赖关系。压缩并压缩了471个字节。由控制。 功能性。该功能会自动运行(想想Ramda)。 灵活的。可以进行调整以呈现任何现代货币。 import prettyMoney from "pretty-...

    货币格式化

    本篇文章将通过一个具体的示例来讲解如何利用JavaScript语言中的正则表达式和字符串操作来实现货币格式化。 #### 示例代码解析 首先,我们来看一下题目中给出的部分代码: ```javascript var price = ...

    javascript精确计算日期处理金额格式化

    在JavaScript中,原始数字类型的处理并不直观,特别是在涉及货币格式化时。默认情况下,JavaScript会将数字显示为科学计数法,这在处理金额时显然是不合适的。为了解决这个问题,我们可以使用Number对象的toFixed()...

    JavaScript数字格式化函数

    在JavaScript中,数字格式化是将数值转换为特定格式的过程,比如添加逗号分隔符、保留小数位数、货币格式等。这通常涉及到字符串处理和数学运算。本篇文章将深入探讨JavaScript中的数字格式化函数及其应用。 一、...

    jQuery货币金钱格式化数字插件

    accounting.js是什么,金钱和货币格式一个微小的JavaScript库,使用可选的Excel风格的列渲染(排队符号和小数)。它的重量轻,完全可本地化和具有零依赖性。 演示地址:http://www.jq22.com/jquery-info326

    纯js实用格式化货币插件.zip

    《纯JavaScript实现的货币格式化插件:currencyFormatter.js》 在Web开发中,处理货币数据的格式化是一项常见的任务,特别是在涉及国际化的项目中。currencyFormatter.js是一款强大的纯JavaScript插件,专为此目的...

    纯js实用格式化货币插件

    总的来说,currencyFormatter.js是一个强大且灵活的前端工具,它提升了前端应用在处理货币格式化时的效率和用户体验。无论是小型个人项目还是大型企业级应用,这款插件都能够提供可靠的货币格式化解决方案。通过深入...

    normat通用javascript编号字符串格式化

    2. **货币格式化**:对于处理财务数据,可能有一个`formatCurrency`函数,它可以将数字转换为特定货币的格式,如美元、欧元等。 3. **字符串填充**:可能包含`padLeft`和`padRight`方法,用于在字符串的左侧或右侧...

    采用js实现具有复杂字符串的格式化操作类库函数

    4. **日期和货币格式化**:可能内置了对JavaScript的`Date`对象和货币数值的支持,提供格式化日期和货币的方法,例如 `formatDate` 和 `formatCurrency`。 5. **转换为字符串**:当所有操作完成时,`toString` 方法...

    JS中格式化数字的5个方法

    此函数用于格式化金额数字,使其具有标准的货币格式。它能够正确处理负数,并确保结果始终保留两位小数。 #### 参数说明 - `amount`: 需要被格式化的金额数字。 #### 示例代码 ```javascript function ...

    JavaScript 格式化浮点类型函数

    3. **货币格式化**:如果需要将数字格式化为货币样式,可以使用`Intl.NumberFormat`全局对象,它提供了本地化支持。例如,`new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(num)`将...

    js字符串转货币格式及金额小写转大写

    在JavaScript(JS)...综上所述,处理JavaScript中的货币格式化和金额转换涉及到字符串操作、正则表达式、自定义函数以及DOM操作等多个方面。通过这些方法,我们可以确保在前端界面中正确地显示符合财务规范的金额。

    Javascript将数字转化成为货币格式字符串_.docx

    在JavaScript编程中,有时我们需要将数字格式化为货币样式,以方便展示给用户。这篇文章主要讲解了两种在JavaScript中将数字转化为货币格式字符串的...在编写涉及货币格式化的JavaScript代码时,可以灵活运用这些技巧。

    currencyFormatterjs是一款简单实用的纯js格式化货币插件

    在实际应用中,`currencyFormatterjs`通常会与前端框架如React、Vue或Angular等结合使用,通过调用插件提供的API来处理数据模型中的货币值,实现动态的货币格式化显示。例如,可以在用户输入金额后实时格式化显示,...

    javascript 日期数字文本格式化

    在数字格式化方面,JavaScript原生并不提供强大的工具,比如将数字格式化为货币、百分比或者带有固定小数位数的格式。这时,我们可能需要借助一些开源库。例如,`BigDecimal.js`是一个用于高精度浮点数运算的库,...

    基于vueelement的金额格式化组件

    "基于vue-element的金额格式化组件"是针对这一需求而设计的,它将帮助我们在Vue.js应用中方便地展示和输入货币值。 Vue Element是一个结合了Element UI库的Vue.js插件,Element UI提供了一套美观、易用的组件,适用...

    js处理货币格式插件currency.js

    **JavaScript与货币格式化** 在JavaScript中,处理货币格式化是一项常见的任务,因为JavaScript的浮点数计算可能存在精度问题,这可能导致在显示金额时出现不准确的情况。`currency.js`是一个专为此目的设计的插件...

    jQuery文本输入框内容格式化代码.zip

    9. **货币格式化**:无论是人民币、美元还是其他货币,插件可以将用户输入的数值转化为标准货币格式,如"¥123,456.78"或"$123,456.78"。 在压缩包中,"index.html"是示例页面,用于展示插件的使用方法和效果;...

    d:最小的货币格式化器

    geld是最小的货币格式化程序。 安装 使用 : npm install geld --save 使用: yarn add geld 用法 const geld = require ( 'geld' ) ; const price1 = geld ( 42.23 ) ; console . log ( price1 ) ; // =&gt; '42,23...

Global site tag (gtag.js) - Google Analytics