关于web开发金额每隔三位逗号格式化js

获得焦点并输入效果,失去焦点效果

js代码:

<script>
  // 格式化数字成0,000.00
   function formatNumber(value) {
	var result = "";
	var valueParts = value.split(".");
	var mostSignificationDigit = valueParts[0].length -1;   // 最高有效数字位,默认为个位
	var intervalOfDigit = 0; 	// 逗号之间的位数
	var digit, countOfSignificationDigit;
	for (var i = valueParts[0].length -1; i >= 0; i--) {
		digit = valueParts[0][i];
		result = digit + result;
		if (digit != "0") {
			mostSignificationDigit = i;
		}
		if (3 == ++intervalOfDigit) {
			result = "," + result;
			intervalOfDigit = 0;
		}
	}
	if (mostSignificationDigit == -1) {
		result = "0";
	}
	else {
		countOfSignificationDigit = valueParts[0].length - mostSignificationDigit;
		if (countOfSignificationDigit > 3) {
			result = result.substring(result.length - (countOfSignificationDigit%3 == 0 ? countOfSignificationDigit/3 - 1 : countOfSignificationDigit/3)  - countOfSignificationDigit);
		}
		else {
			result = result.substring(result.length - countOfSignificationDigit);
		}
	}
	if (valueParts.length == 2) {
		result += ".";
		var temp = 2 - valueParts[1].length;	// 是否需要补0
		for (var i = 0; i < temp; i++) {
			valueParts[1] += "0"
		}
		result += valueParts[1].substring(0, 2);
	}
	else {
		result += ".00";
	}
	return result;
}

// 鼠标再次聚焦文本域,就清除货币格式,显示无格式的数字
function clearAllFormat(obj){
	if(obj!=null&&$(obj).val()!=null&&$(obj).val().trim().length>0){
		var waitToDeleteCommaNumber = $(obj).val();
		var newInputValue = waitToDeleteCommaNumber.replace(/,/g,"");
		$(obj).val(newInputValue.toString());
		return newInputValue.toString();
	}
}

// 验证是否为浮点数
function checkNumberIsLegal22(obj){

	if(!/^[0-9]+(\.[0-9]+){0,1}$/.test(obj)){
		return false;
	}
		return true;
}

// 格式化金额类数字,每三位用逗号分隔,显示的是用逗号分隔的格式化形式
function formatMoneyByComma(obj){
	if(obj!=null&&$(obj).val().trim().length>0&&checkNumberIsLegal22($(obj).val())){
		// 格式化之前,先清除格式
		clearAllFormat(obj);
		if($(obj).val()){
		var currentNumber = $(obj).val();
		$(obj).val(formatNumber(currentNumber));
	}
}
}
</script>

jsp:

<input id="partoutAmount" name="partoutAmount" class="c2" onfocus="clearAllFormat(this)" onblur="formatMoneyByComma(this)"  maxlength="20"  style="text-align:right;height:28px">



时间: 2024-10-13 20:50:54

关于web开发金额每隔三位逗号格式化js的相关文章

数字格式化,从右往左每隔三位加逗号的四种方法

转载自:http://www.uedsc.com/micrometer-method.html 有時候我个必需将数字加上每三个位数加上一个逗号,例如20000变成20,000,目的是为了在方便财务上阅读,所以我整理了以下四种解決的方法: 1.javascript //一个迂回函式 function formatNumber(str) { if(str.length <= 3){ return str; } else { return formatNumber(str.substr(0,str.l

Java Web 开发必须掌握的三个技术:Token、Cookie、Session

在Web应用中,HTTP请求是无状态的.即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session. Cookie Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式.Cookie存储的数据量有限,且都是保存在客户端浏览器中.不同的浏览器有不同的存储大小,但一般不超过4KB.因此使用 实际上只能存储一小段的文本信息. 例如:登录网站,今输入用户名密码登录了,第二天再打开很多情

web开发之浏览器(三)----浏览器常用事件及属性

浏览器页面后退事件 <a href="javascript:history.back(-1)" class="btn btn-default" >返回</a> history.back(-1):直接返回当前页的上一页,数据全部消息,是个新页面 history.go(-1):也是返回当前页的上一页,不过表单里的数据全部还在 history.back(0) 刷新  history.back(1) 前进  history.back(-1) 后退  

Django web 开发入门教程 (三)

reference: https://docs.djangoproject.com/en/1.8/intro/tutorial02/ This tutorial begins where Tutorial 1 left off. We’re continuing the Web-poll application and will focus on Django’s automatically-generated admin site. Philosophy Generating admin si

将金额数字每三位一逗号分隔

<div class="recharge-main-top"> <p class="recharge-main-topp1">充值成功</p> <span class="recharge-main-topspan">+<span>1000.00</span>元</span> <p class="recharge-main-topp2"&g

C# 转成金额每三位逗号隔开

long aaaa = 14200666; Console.WriteLine(aaaa.ToString("N0")); Console.WriteLine(string.Format("{0:N0}", 14200666));结果: 1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0.20)默认格式化小数点后面保留两

web开发学习笔记(三)

jquery中attr的使用: 在jquery中,attr()是个很方便的方法,它实际上就是JavaScript中的request.getAttribute()方法,主要的使用方式有两种:根据属性取数据以及设置属性值. 根据属性取数据: var value = $(this).attr("value") 设置属性值: $(this).attr("name","yourname")

Flask Web 开发学习稿(三)

第六章 电子邮件 当我们需要在特定事件发生时提醒用户,包装了 smtplib 的 Flask-Mail 扩展能更好的和 Flask 集成 安装 pip install flask-mail Flask-Mail 连接到 SMTP 服务器,如果不进行配置,Flask-Mail 会连接 localhost 上的端口 25 配置 默认值 说明 MAIL_SERVER localhost Email服务器的ip地址或者主机名 MAIL_PORT 25 Email服务器端口 MAIL_USE_TLS Fa

web开发之浏览器(二)----JQuery或JS判断浏览器内核版本号以及是否支持W3C盒子模型

1,JQuery或JS判断浏览器内核版本号以及是否支持W3C盒子模型 jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support .在更新的 2.0 版本中,将不再支持 IE 6/7/8. 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9.  以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9及以下的版本. 如果要全面支持 IE,并混合使用 jQuery 1.9及以下 和