Achieving effect:
Numbers are automatically thousandths, filled in into numbers
Corresponding HTML:
input id="receivedCost" name="receivedCost" value="0"
placeholder="" class="form-control"
style="height:; width : px; margin-bottom: 0px;"
type="text" οnchange="checkNum(this)" οnmοuseοver="removeNumNode(this)" οnmοuseοut="checkNum(this)")
Corresponding js:
function thousandPoints(obj){//input obj=123456.7890
if(obj0){
return 0;
}
if(obj’’){
return ‘’;
}
//剔除NAN
if(obj!==obj){
return '';
}
if(null==obj){
return '';
}
if(obj==undefined){
return '';
}
var mnyReg = /^([1-9][0-9]*|(([0]\.[0-9]{0,2}[1-9]\d*|[1-9][0-9]*\.\d*)))$/;//根据需求修改
if(!(mnyReg.test(obj))){
/*debugger
obj,minus = detMinus(obj);
alert(obj);
alert(minus);*/
obj = returnNormalNum(obj);
}
// alert(obj);
var n = 2; //保留得小数位
obj = parseFloat(obj).toFixed(n); //obj=123456.789
var left = obj.split(".")[0].split("").reverse();//left = [“6”,“5”,“4”,“3”,“2”,“1”]
var right = obj.split(".")[1]; //right = “789”
var total = new Array();
for (i = 0; i < left.length; i++) {
total.push(left[i]);
if((i + 1) % 3 == 0 && (i + 1) != left.length){
total.push(",");
}
} //total = [“6”,“5”,“4”,",",“3”,“2”,“1”]
var newValue;
newValue = total.reverse().join("") + “.” + right
return newValue;
};
/*String.prototype.replaceAll = function(s1,s2){
return this.replace(new RegExp(s1,“gm”),s2);
} */
//Convert the thousandth sign number into the original data
function returnNormalNum(num){ if(null!=num){ var oldMny = num.replaceAll(",",""); if(oldMny.indexOf(".") >0){ oldMny = oldMny.replace(/0+? /, ""); / / Remove the extra 0 old M ny = old M ny. Replace (/ [.] /,"");//Remove The extra 0 at the tail oldMny = oldMny.replace(/[.]
/,"");/ / To other tail portions plurality remainder of 0 O L D M n- Y=o l d M n y . r e p l a c e ( / [ . ] /,"");//If the last digit is. then remove
}
return oldMny;
}
};
/ Function detMinus (num) { debugger var less = ''; if (num.charAt (0) == '-') { minus = '-'; Surely = num.slice (1); } Return or less; }
/
function checkNum(obj) {
//debugger;
var num = obj.value;
//alert(num);
//1.先去除空格,判断是否空值和非数
num = num + "";
num=num.replaceAll(",","");
num = num.replace(/[ ]/g, ""); //去除空格
if (num == "") {
$(obj).val("0");
return;
}
if (isNaN(num)){
$(obj).val("0");
return;
}
num=parseInt(num*10000)/10000;
num=num.toString();
var rs = num.indexOf('.');
if (rs < 0) {
rs = num.length;
num += '.';
}
while (num.length <= rs + 2) {
num += '0';
}
//2.针对是否有小数点,分情况处理
var index = num.indexOf(".");
if (index==-1) {//无小数点
var reg = /(-?\d+)(\d{3})/;
while (reg.test(num)) {
num = num.replace(reg, "$1,$2");
}
} else {
var intPart = num.substring(0, index);
var pointPart = num.substring(index + 1, index + 3);
var reg = /(-?\d+)(\d{3})/;
while (reg.test(intPart)) {
intPart = intPart.replace(reg, "$1,$2");
}
num = intPart +"."+ pointPart;
}
$(obj).val(num);
}
function checkTableNum(num) {
//1.先去除空格,判断是否空值和非数
num = num + "";
num = num.replace(/[ ]/g, ""); //去除空格
if (num == null||num=='null'||typeof(num) == "undefined"||num== "undefined") {
return '0.00';
return;
}
if (num == "") {
return '0.00';
return;
}
if (num == "0") {
return '0.00';
return;
}
if (isNaN(num)){
return '0.00'
return;
}
num=parseInt(num*10000)/10000;
num=num.toString();
var rs = num.indexOf('.');
if (rs < 0) {
rs = num.length;
num += '.';
}
while (num.length <= rs + 2) {
num += '0';
}
//2.针对是否有小数点,分情况处理
var index = num.indexOf(".");
if (index==-1) {//无小数点
var reg = /(-?\d+)(\d{3})/;
while (reg.test(num)) {
num = num.replace(reg, "$1,$2");
}
} else {
var intPart = num.substring(0, index);
var pointPart = num.substring(index + 1, index + 3);
var reg = /(-?\d+)(\d{3})/;
while (reg.test(intPart)) {
intPart = intPart.replace(reg, "$1,$2");
}
num = intPart +"."+ pointPart;
}
return num;
}
function removeNumNode (obj){
var num = obj.value;
//alert(num);
//1.先去除空格,判断是否空值和非数
num = num + "";
num=num.replaceAll(",","");
$(obj).val(num);
}
function justNum(obj){
obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符
obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数
if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
obj.value= parseFloat(obj.value);
}
}
function toMenNum(num){
// var num = $("#"+obj).val();
//alert(num);
//1.先去除空格,判断是否空值和非数
num = num + "";
num=num.replaceAll(",","");
num = num.replace(/[ ]/g, ""); //去除空格
if (num == "") {
$(obj).val("0");
return;
}
if (isNaN(num)){
$(obj).val("0");
return;
}
num=parseInt(num*10000)/10000;
num=num.toString();
var rs = num.indexOf('.');
if (rs < 0) {
rs = num.length;
num += '.';
}
while (num.length <= rs + 2) {
num += '0';
}
//2.针对是否有小数点,分情况处理
var index = num.indexOf(".");
if (index==-1) {//无小数点
var reg = /(-?\d+)(\d{3})/;
while (reg.test(num)) {
num = num.replace(reg, "$1,$2");
}
} else {
var intPart = num.substring(0, index);
var pointPart = num.substring(index + 1, index + 3);
var reg = /(-?\d+)(\d{3})/;
while (reg.test(intPart)) {
intPart = intPart.replace(reg, "$1,$2");
}
num = intPart +"."+ pointPart;
}
return num;
// $("#"+obj).val(num);
}