在金融系统或财务系统中,需要将输入的数值转换为货币,方便用户查看 可以通过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中,对数字进行货币格式化的处理是非常常见的需求,尤其是在财务或电子商务相关的应用程序中。以下是对给定代码片段的深入解析和知识点总结。 #### 标准货币格式化函数 `formatCurrency` 此函数实现了...
一个很小JavaScript货币格式化库。 小的。无依赖关系。压缩并压缩了471个字节。由控制。 功能性。该功能会自动运行(想想Ramda)。 灵活的。可以进行调整以呈现任何现代货币。 import prettyMoney from "pretty-...
本篇文章将通过一个具体的示例来讲解如何利用JavaScript语言中的正则表达式和字符串操作来实现货币格式化。 #### 示例代码解析 首先,我们来看一下题目中给出的部分代码: ```javascript var price = ...
在JavaScript中,原始数字类型的处理并不直观,特别是在涉及货币格式化时。默认情况下,JavaScript会将数字显示为科学计数法,这在处理金额时显然是不合适的。为了解决这个问题,我们可以使用Number对象的toFixed()...
在JavaScript中,数字格式化是将数值转换为特定格式的过程,比如添加逗号分隔符、保留小数位数、货币格式等。这通常涉及到字符串处理和数学运算。本篇文章将深入探讨JavaScript中的数字格式化函数及其应用。 一、...
accounting.js是什么,金钱和货币格式一个微小的JavaScript库,使用可选的Excel风格的列渲染(排队符号和小数)。它的重量轻,完全可本地化和具有零依赖性。 演示地址:http://www.jq22.com/jquery-info326
总的来说,currencyFormatter.js是一个强大且灵活的前端工具,它提升了前端应用在处理货币格式化时的效率和用户体验。无论是小型个人项目还是大型企业级应用,这款插件都能够提供可靠的货币格式化解决方案。通过深入...
《纯JavaScript实现的货币格式化插件:currencyFormatter.js》 在Web开发中,处理货币数据的格式化是一项常见的任务,特别是在涉及国际化的项目中。currencyFormatter.js是一款强大的纯JavaScript插件,专为此目的...
"基于vue-element的金额格式化组件"是针对这一需求而设计的,它将帮助我们在Vue.js应用中方便地展示和输入货币值。 Vue Element是一个结合了Element UI库的Vue.js插件,Element UI提供了一套美观、易用的组件,适用...
2. **货币格式化**:对于处理财务数据,可能有一个`formatCurrency`函数,它可以将数字转换为特定货币的格式,如美元、欧元等。 3. **字符串填充**:可能包含`padLeft`和`padRight`方法,用于在字符串的左侧或右侧...
在实际应用中,`currencyFormatterjs`通常会与前端框架如React、Vue或Angular等结合使用,通过调用插件提供的API来处理数据模型中的货币值,实现动态的货币格式化显示。例如,可以在用户输入金额后实时格式化显示,...
4. **日期和货币格式化**:可能内置了对JavaScript的`Date`对象和货币数值的支持,提供格式化日期和货币的方法,例如 `formatDate` 和 `formatCurrency`。 5. **转换为字符串**:当所有操作完成时,`toString` 方法...
此函数用于格式化金额数字,使其具有标准的货币格式。它能够正确处理负数,并确保结果始终保留两位小数。 #### 参数说明 - `amount`: 需要被格式化的金额数字。 #### 示例代码 ```javascript function ...
3. **货币格式化**:如果需要将数字格式化为货币样式,可以使用`Intl.NumberFormat`全局对象,它提供了本地化支持。例如,`new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(num)`将...
在JavaScript(JS)...综上所述,处理JavaScript中的货币格式化和金额转换涉及到字符串操作、正则表达式、自定义函数以及DOM操作等多个方面。通过这些方法,我们可以确保在前端界面中正确地显示符合财务规范的金额。
在JavaScript编程中,有时我们需要将数字格式化为货币样式,以方便展示给用户。这篇文章主要讲解了两种在JavaScript中将数字转化为货币格式字符串的...在编写涉及货币格式化的JavaScript代码时,可以灵活运用这些技巧。
在数字格式化方面,JavaScript原生并不提供强大的工具,比如将数字格式化为货币、百分比或者带有固定小数位数的格式。这时,我们可能需要借助一些开源库。例如,`BigDecimal.js`是一个用于高精度浮点数运算的库,...
**JavaScript与货币格式化** 在JavaScript中,处理货币格式化是一项常见的任务,因为JavaScript的浮点数计算可能存在精度问题,这可能导致在显示金额时出现不准确的情况。`currency.js`是一个专为此目的设计的插件...
9. **货币格式化**:无论是人民币、美元还是其他货币,插件可以将用户输入的数值转化为标准货币格式,如"¥123,456.78"或"$123,456.78"。 在压缩包中,"index.html"是示例页面,用于展示插件的使用方法和效果;...
geld是最小的货币格式化程序。 安装 使用 : npm install geld --save 使用: yarn add geld 用法 const geld = require ( 'geld' ) ; const price1 = geld ( 42.23 ) ; console . log ( price1 ) ; // => '42,23...