JS在用户输入的时候格式化数字为财务数字,如"123,123,1.123,1"

String.prototype.replaceAll = function(s1, s2) {
	return this.replace(new RegExp(s1, "gm"), s2);
}
/**
 * 调用的时候必须使用onkeypress事件
 * 目前代码为优化,为考虑特殊按键,如<-,tab键等
 * 
 */
function rep(obj) {
	document.getElementById("lb").innerHTML = "";
	var new_int;
	var old_int = obj.value.replaceAll(",", "");
	var len;
	// 不能直接输入","符号
	if (event.keyCode == 44) {
		return false;
	}
	// 只能数一个小数点
	if (event.keyCode == 46) {
		if (old_int.indexOf(".") > 0) {
			return false;
		} else {
			// 处理用户在刚好输入四位数字,如123,4后删除最后一位123,直接按下小数点"."
			var bool = obj.value.indexOf(",") + 1 == obj.value.length;
			if (bool) {
				obj.value = obj.value.replace(",", ".");
				return false;
			}
		}
	}
	//设置 有小数点时格式化的len
	if (old_int.indexOf(".") > 0) {
		len = old_int.substring(old_int.indexOf("."), old_int.length).length
				- 1;
	} else {//设置 其他情况格式化的len
		len = old_int.length;
	}
	var t_val = old_int + String.fromCharCode(event.keyCode);
	if (!(/^-?\d+\.{0,}\d{0,}$/.test(t_val))) {
		document.getElementById("lb").innerHTML = "只能输入数字";
		return false;
	}

	// 根据len判断是否加格式化 (加",")
	if ((len > 0) & (len % 3 == 0) & (event.keyCode != 46)) {
		if (obj.value.indexOf(",") + 1 != obj.value.length) {
			new_int = obj.value + ",";
			obj.value = new_int;
		}
	}
}
/**
 * 提交的时候,要获取正确的值,直接替换掉里面的所有","就行
 * @param {} obj
 */
function onsubmit(obj) {
	alert(obj.value.replaceAll(",", ""));
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值