金额与数字转化常用实用几个JS方法
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
财务系统中常用到金额与数字转化的处理,这里包括以下几个方法:1、去空格2、页面控件的金额与数字之间的转换3、一般金额与数字之间的转换4、将数字金额转化为汉字金额。
- //在引用页面,可以采用document.forms[0].field1.value.trim()引用去空格
- String.prototype.trim = function(){
- return this.replace(/(^/s*)|(/s*$)/g, "");
- }
- //将1,234,567.00转换为1234567.00
- function moneyToNumFiled(obj) {
- var num=obj.value.trim();
- var ss=num.toString();
- if(ss.length==0){
- return "";
- }
- num=new Number(ss.replace(/,/g, ""));
- if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){
- alert("必须是数字型,切小数位最多保留两位");
- obj.value="";
- obj.focus();
- return ;
- }
- obj.value=num;
- }
- //将1,234,567.00转换为1234567.00
- function moneyToNumValue(val) {
- var num=val.trim();
- var ss=num.toString();
- if(ss.length==0){
- return "0";
- }
- return ss.replace(/,/g, "");
- }
- //用于页面控制
- //将1234567.00转换为1,234,567.00
- function numToMoneyField(obj) {
- var ss=obj.value.toString().trim();
- if(ss.length==0){
- return "";
- }
- var num=new Number(ss.replace(/,/g, ""));
- if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){
- alert("必须是数字型,切小数位最多保留两位");
- obj.value="";
- obj.focus();
- return;
- }
- if(num<0){
- obj.value = '-'+outputDollars(Math.floor(Math.abs(num)-0) + '') + outputCents(Math.abs(num) - 0);
- }else{
- obj.value = outputDollars(Math.floor(num-0) + '') + outputCents(num - 0);
- }
- }
- //将1234567.00转换为1,234,567.00
- function numToMoneyValue(val) {
- var ss=val.toString().trim();
- if(ss.length==0){
- return "";
- }
- var num=new Number(ss.replace(/,/g, ""));
- if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){
- alert("必须是数字型,切小数位最多保留两位");
- return "";
- }
- if(num<0){
- return '-'+outputDollars(Math.floor(Math.abs(num)-0) + '') + outputCents(Math.abs(num) - 0);
- }else{
- return outputDollars(Math.floor(num-0) + '') + outputCents(num - 0);
- }
- }
- function Chinese(num){ //如输入123.45可得到 壹百贰拾叁元肆角伍分
- var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
- var BB = new Array("","拾","百","千","万","亿","","");
- var CC = new Array("角","分","");
- var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = "";
- for(var i=a[0].length-1; i>=0; i--){
- switch(k){
- case 0 : re = BB[7] + re; break;
- case 4 : if(!new RegExp("0{4}//d{"+ (a[0].length-i-1) +"}$").test(a[0]))
- re = BB[4] + re; break;
- case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break;
- }
- if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re;
- if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++;
- }
- if(re.trim().length>0){
- re+="元";
- }
- if(a.length>1){ //加上小数部分(如果有小数部分)
- re += BB[6];
- for(var i=0; i1) break;
- re += AA[a[1].charAt(i)] + CC[i];
- }
- }
- return re;
- }
- //格式化输入数字,并保留指定位小数
- //amount为原数字,_pow_为需要保留小数位数
- function powAmount(amount,_pow_) {
- var amount_bak=amount;
- var base=10;
- if(isNaN(amount)){
- alert(amount+'必须为数字');
- return;
- }
- if(isNaN(_pow_)){
- alert(_pow_+'必须为数字');
- return;
- }
- amount = Math.round( ( amount - Math.floor(amount) ) *Math.pow(base,_pow_));
- amount=amount<10 ? '.0' + amount : '.' + amount
- amount=Math.floor(amount_bak)+amount;
- return amount;
- }
//在引用页面,可以采用document.forms[0].field1.value.trim()引用去空格String.prototype.trim = function(){ return this.replace(/(^/s*)|(/s*$)/g, "");}//将1,234,567.00转换为1234567.00function moneyToNumFiled(obj) { var num=obj.value.trim(); var ss=num.toString(); if(ss.length==0){ return ""; } num=new Number(ss.replace(/,/g, "")); if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){ alert("必须是数字型,切小数位最多保留两位"); obj.value=""; obj.focus(); return ; } obj.value=num; }//将1,234,567.00转换为1234567.00function moneyToNumValue(val) { var num=val.trim(); var ss=num.toString(); if(ss.length==0){ return "0"; } return ss.replace(/,/g, ""); }//用于页面控制//将1234567.00转换为1,234,567.00function numToMoneyField(obj) { var ss=obj.value.toString().trim(); if(ss.length==0){ return ""; } var num=new Number(ss.replace(/,/g, "")); if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){ alert("必须是数字型,切小数位最多保留两位"); obj.value=""; obj.focus(); return; } if(num<0){ obj.value = '-'+outputDollars(Math.floor(Math.abs(num)-0) + '') + outputCents(Math.abs(num) - 0); }else{ obj.value = outputDollars(Math.floor(num-0) + '') + outputCents(num - 0); }}//将1234567.00转换为1,234,567.00function numToMoneyValue(val) { var ss=val.toString().trim(); if(ss.length==0){ return ""; } var num=new Number(ss.replace(/,/g, "")); if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){ alert("必须是数字型,切小数位最多保留两位"); return ""; } if(num<0){ return '-'+outputDollars(Math.floor(Math.abs(num)-0) + '') + outputCents(Math.abs(num) - 0); }else{ return outputDollars(Math.floor(num-0) + '') + outputCents(num - 0); }}function Chinese(num){ //如输入123.45可得到 壹百贰拾叁元肆角伍分 var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"); var BB = new Array("","拾","百","千","万","亿","",""); var CC = new Array("角","分",""); var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = ""; for(var i=a[0].length-1; i>=0; i--){ switch(k){ case 0 : re = BB[7] + re; break; case 4 : if(!new RegExp("0{4}//d{"+ (a[0].length-i-1) +"}$").test(a[0])) re = BB[4] + re; break; case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break; } if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re; if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++; } if(re.trim().length>0){ re+="元"; } if(a.length>1){ //加上小数部分(如果有小数部分) re += BB[6]; for(var i=0; i1) break; re += AA[a[1].charAt(i)] + CC[i]; } } return re;}//格式化输入数字,并保留指定位小数//amount为原数字,_pow_为需要保留小数位数function powAmount(amount,_pow_) { var amount_bak=amount; var base=10; if(isNaN(amount)){ alert(amount+'必须为数字'); return; } if(isNaN(_pow_)){ alert(_pow_+'必须为数字'); return; } amount = Math.round( ( amount - Math.floor(amount) ) *Math.pow(base,_pow_)); amount=amount<10 ? '.0' + amount : '.' + amount amount=Math.floor(amount_bak)+amount; return amount;}
本文出自:冯立彬的博客
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
金额与数字转化常用实用几个JS方法相关推荐
- 数字转化为字符串的两种方法
public static void main(String[] args) {int a = 100;//使用空字符串相加数字,会自动变成字符串类型String str = "" ...
- 将数字转化为字符串的两种方法
for(int i = 0; i < nums.length; i++) 1.strs[i] = String.valueOf(nums[i]): 2.strs[i] = Integer.toS ...
- 金额的大写方法_把数字转化为人民币的大写汉字
package userweb.action.buy.haoTest.mianshiti; import java.math.BigDecimal; public class ConvertNumbe ...
- java 数字转化为汉字_工具类_java 数字转化为汉字大写
public class Num2Rmb { private String[] hanArr = { "零", "壹", "贰", &quo ...
- 日期相减 python_如果将excel的数字转化为日期(高级教程)
不知道大家有没有这样的体会,明明我们在单元格里输入的是一个日期,但是excel却提示我们输入的是一个数字,这个东西就很奇怪了,43471怎么就成了日期了那? 实际上这和计算机的底层设置有关系,计算机是 ...
- 关于把小写数字转化为大写数字的java代码
import java.math.BigDecimal; public class ConvertNumber { /** 定义数组存放数字对应的大写 */ private final static ...
- linux 路径 冒号_收藏 | Linux常用实用命令
脚本之家 你与百万开发者在一起 作者:geshan 来源丨格姗知识圈 Linux是我们开发人员必不可少的系统,也是经常接触到的.然而,Linux命令比较多,有些不常用也难记住.那么,我们如何更高效的使 ...
- 工作中常用,实用工具推荐!
原文:工作中常用,实用工具推荐! Red Gate 家族 大名鼎鼎的RedGate,相信大家都不会陌生,Reflector就是它家做的.这里就不介绍了.我本地安装的是09年下的一个套装,我介绍下常用的 ...
- Python 如何优雅的将数字转化为时间格式
将数字转化成时间格式 from dateutil.parser import parsea=20170825 b=str(a) c=parse(b) print(c) 2017-08-25 00:00 ...
最新文章
- 十分钟看会laravel导入导出功能,就这么简单
- Python之迭代器和生成器
- 解决通过 Visual Studio 打不开 ui 文件的问题
- android 多行 对齐方式,android – 按钮与多行文字下沉对齐线,如何解决?
- mysql中利用sql语句修改字段名称,字段长度等操作(亲测)
- 今日恐慌与贪婪指数为38 恐慌程度明显上升
- 关于Python在Linux、Mac和Windows上的安装方法总结
- (1)、win10 本地 安装 rabbitmq
- c语言怎样用vc绘图,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
- 怎么将两个html合并一个文件,如何将两页pdf合成一页?(如何将两个pdf文件合并成一个)...
- MicroSIP软电话安装配置说明
- vue ui创建项目的常见错误
- android dropbox切换账户,输入用户名和密码到Dropbox用Calablash登录webview android
- 禅宗公案 艾舍尔的画与哥德尔定理——哥德尔逻辑与哲学之2
- 修改Console口登录密码
- css动画走马灯5秒,用animation制作走马灯
- html打开ppt自动播放,ppt文件怎么打开就可以全屏自动播放
- 用选择法或冒泡法对输入的50个字符(按照ASII码由小到大)进行排序
- matlab半小提琴图,小提琴图的画法
- 量子计算机:决胜21世纪的利器
热门文章
- 云小课 | MRS基础入门之HDFS组件介绍
- 华为云携手马栏山文创园助力湖南广电荣获国家广电总局多项大奖
- 面试官问我:如何在 Python 中解析和修改 XML
- 一文带你认识MindSpore新一代分子模拟库SPONGE
- 基于Docker快速搭建ELK
- dell r230u盘启动安装2008_dell r230服务器 怎么u盘开启
- Android笔记 定义意图过滤器intent- filter demo
- 在虚拟机中是无法运行CarlaUE.sh文件的
- 线性调频信号 matlab
- FPGA _Verilog HDL_8位加法器设计实验