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(",", ""));
}