/**
* @author tc
* 引入jquery.js
* 引入money.js charset="utf-8" -- 注意引入时指定编码,因为ie6不能自动识别
* <input class="money"/> 默认使用万元格式化,整数位数8,小数位数6
* <input class="money" leftLen="2" rightLen="2"/>整数位数2,小数位数2
* 如果使用struts标签,后面两个属性不能有 class要改成styleClass
* 提交数据还原成数字使用rvalue方法
* */
//格式话金额
function formatValue(s, n)//将数字转换成逗号分隔的样式,保留两位小数s:value,n:小数位数
{
if(isNaN(s))s=0;
n = n > 0 && n <= 20 ? n : 6;
s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
var l = s.split(".")[0].split("").reverse(),
r = s.split(".")[1];
t = "";
for(i = 0; i < l.length; i ++ )
{
t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
}
return (t.split("").reverse().join("") + "." + r).replace("-,","-");
}
//还原金额
function rvalue(s)
{
return parseFloat(s.replace(/[^\d\.-]/g, ""));
}
function clearNoNum(event,obj)
{
//响应鼠标事件,允许左右方向键移动
event = window.event||event;
if(event.keyCode == 37 | event.keyCode == 39){
return;
}
//先把非数字的都替换掉,除了数字和.
if(obj.value.indexOf('-')==0)
obj.value = "-"+obj.value.replace(/[^\d.]/g,"");
else
obj.value =obj.value.replace(/[^\d.]/g,"");
//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");
//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");
//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
jQuery(function (){
autoMoney();
})
function fmoney(obj)
{
var leftLen=obj.attr("leftLen");
var rightLen=obj.attr("rightLen");
if(leftLen==undefined ||isNaN(leftLen)){leftLen=8;}
if(rightLen==undefined ||isNaN(rightLen)){rightLen=6;}
if(obj.val()=="" || obj.val()==undefined)obj.val("0");
var obj_value=rvalue(obj.val()).toFixed(rightLen);
var index=obj_value.indexOf('.');
if(index==-1)
{
var allLen=obj_value.length;
if(allLen>leftLen)
{
//obj_value="0";
alert("金额过大");
}
}else
{
var _ary=obj_value.split('.');
var _len=_ary[0].length;
var _ren=_ary[1].length ;
if(_len>leftLen)
{
//_ary[0]="0";
alert("金额过大");
}
if(_ren>rightLen)
_ary[1]=_ary[1].substring(0,_ren);
obj_value=parseFloat(_ary[0]+"."+_ary[1]);
}
return formatValue(obj_value,rightLen);
}
function autoMoney()
{
jQuery(".money").each(function (){
jQuery(this).css("text-align","right");
jQuery(this).focus(function (){this.value=rvalue(this.value)});
jQuery(this).blur(function (){this.value=fmoney(jQuery(this))});
jQuery(this).keyup(function (){clearNoNum(event,this)});
this.value=fmoney(jQuery(this));
})
}
分享到:
相关推荐
在IT行业中,数字金额分割是一种常见的需求,尤其是在财务软件、电子商务平台或任何处理货币值的应用中。这个"数字金额分割"的Demo提供了一个便捷的解决方案,可以将数字金额按照特定格式进行分隔,使得数值更易读,...
"财务金额栏cxGrid"是专为Delphi开发者设计的一款控件,用于高效地处理和显示财务数据。cxGrid是一个功能强大的网格组件库,它提供了一种灵活的方式来呈现和编辑表格数据,特别适合于财务应用中的金额数据管理。 ...
在结算过程中,系统会自动按照这一比例将发票金额分割成两个部分,并分别记录在相应的账户中。这种分割只在总账视图中可见。 - **主动分割示例**:在一个内部转账过程中,若需要从一个成本中心转移到另一个成本中心...
2. 分割金额:根据小数点将金额分割为整数部分和小数部分。 3. 整数部分转换: - 将整数部分从后往前遍历,每次处理一位数字。 - 使用switch语句或if...else if...结构,根据数字的值输出对应的中文字符。 - ...
这个VB程序示例可能包含以下几个关键部分:数字到汉字的映射数组,金额分割逻辑,以及根据规则拼接字符串的代码。通过学习和理解这个例子,开发者可以掌握如何在实际项目中应用类似的转换功能。 在压缩包中的“金额...
1. **金额分割**:首先将金额按照小数点分为整数部分和小数部分。 ```javascript vara = (" " + num).replace(/(^0*)/g, "").split("."); ``` 2. **整数部分处理**:对整数部分的每一位进行处理,根据位置添加...
2. **金额分割**:将输入金额按照小数点分为整数部分和小数部分进行处理。 3. **整数部分转换**:实现将整数部分转换为汉字大写的功能。 4. **小数部分转换**:实现将小数部分转换为汉字大写的功能。 5. **组合结果*...
3. **金额分割**:将字符串按四位一截断,形成各个“级”的数字,注意处理边界情况,如不足四位的零尾部。 4. **大小写转换**:遍历每个“级”的数字,根据数字对应的中文大写进行替换。这里需要创建一个映射表,将...
1. **金额分割**:将金额分为整数部分和小数部分,如"123456"和".78"。 2. **整数转换**:根据中文大写数字的规则,将整数部分转换为对应的中文字符,例如"1"对应"壹","2"对应"贰",以此类推。同时处理特殊的千、万...
在C#中,格式化数字是一项非常实用的功能,它能够帮助开发者按照特定的要求来展示数值。根据提供的代码示例,我们可以总结出以下关于C#中数字格式化的关键知识点: ### 1. 使用`string.Format()`方法进行格式化 ...
背书可以设定“托付收款”或“质押”字样,但不得附带条件,且不得将汇票金额分割转让。汇票正面注明“不得转让”的,不得进行背书转让,否则相应的背书人不承担保证责任。 5. **票据责任**: 当汇票被拒绝付款或...
在SAP系统中,可以设置基于总金额的拆分,或者基于特定条件(如成本中心、内部订单等)的拆分。 凭证拆分规则是整个凭证分割功能的核心,它包括了一系列拆分条件和动作,用于指导系统如何将原始凭证拆分成具体的子...
本篇将详细讲解易语言正则金额分隔源码的相关知识,以及如何利用它进行进阶教程的学习。 在财务或者数据处理中,我们经常需要对金额进行格式化,使其更符合人的阅读习惯,例如将连续的数字“12345678”转换为“12,...
5. 红包算法:红包分配算法是红包系统的核心部分,通常涉及到随机数生成、金额分割等数学逻辑。开发者需要确保红包的公平性和随机性。 6. 游戏对接:源码包含了多款游戏,意味着项目集成了游戏接口,可能是通过API...
5. **红包算法**:红包分配算法是红包系统的核心部分,涉及到随机数生成、金额分割等数学问题。常见的有平均分配、随机分配等策略。在PHP中实现这类算法需要掌握随机数生成函数和数学运算。 6. **安全性**:考虑到...
21. **分期付款 (Instalment)**:将总金额分割成多次支付的安排。 22. **滞付/拖欠/尾数款未付 (Arrears)**:未能按时支付的款项。 23. **特许拖延付款日 (Days of Grace)**:给予付款人额外几天时间付款的宽限期...
4. 分割整数部分和小数部分,分别进行转换。 5. 对整数部分进行逐位转换,添加相应的单位。 6. 对小数部分进行处理,注意处理“零”和“无”的情况。 7. 合并整数和小数部分,形成最终的大写金额字符串。 通过以上...
总之,“仿IE工具栏、分割条、金额小写转大写函数等”这些知识点涵盖了用户界面设计、交互逻辑、数据处理等多个方面,对于进行桌面应用开发的程序员来说,理解和掌握这些技术对于提升软件的专业性和用户友好性具有...
最后,"仿ie工具栏、分割条、金额小写转大写函数等"可能是一个包含所有相关代码和资源的文件或目录。 总的来说,这些知识点涵盖了UI设计、前端开发和后端功能实现等多个领域,对于想要提升软件用户体验和开发金融...
- 在协议的第一条中,明确了甲方(转让方)同意将其在公司中持有的部分股份转让给乙方(受让方),并详细列出了转让的股份比例、股金额、实缴资本以及转让价格。 - 双方需在协议签订后,依法向工商管理机关办理...