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;}}}//设置 有小数点时格式化的lenif (old_int.indexOf(".") > 0) {len = old_int.substring(old_int.indexOf("."), old_int.length).length- 1;} else {//设置 其他情况格式化的lenlen = 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(",", ""));}?