共计 846 个字符,预计需要花费 3 分钟才能阅读完成。
<a-input @input="FC.numDxsCheck(form, 2,'name')" v-model="form.name" :maxLength="50" placeholder="请输出" />
/**
* 带小数点的数字输出 - 默认 4 为小数
* 例如:FC.numDxsCheck(form, 3,'phone')
* form: 表单对象,其中包含 phone
* ws: 几位小数
* key: 键名不叫 phone 时须要传入新的键名
* */
export function numDxsCheck(form, ws, key){if(key === undefined){key = "cost";}
form[key] = form[key] + "";
// 先把非数字的都替换掉,除了数字和.
form[key] = form[key].replace(/[^\d.]/g,"");
// 必须保障第一个为数字而不是.
form[key] = form[key].replace(/^\./g,"");
// 保障只有呈现一个. 而没有多个.
form[key] = form[key].replace(/\.{2,}/g,".");
// 保障. 只呈现一次,而不能呈现两次以上
form[key] = form[key].replace(".","$#$").replace(/\./g,"").replace("$#$",".");
// 只能输出 4 个小数
let c = null;
switch(ws) {
case 1:
c = /^(\-)*(\d+)\.(\d).*$/;
case 2:
c = /^(\-)*(\d+)\.(\d\d).*$/;
break;
case 3:
c = /^(\-)*(\d+)\.(\d\d\d).*$/;
break;
case 4:
c = /^(\-)*(\d+)\.(\d\d\d\d).*$/;
break;
default:
c = /^(\-)*(\d+)\.(\d\d).*$/;
}
// 只能输出两个小数
form[key] = form[key].replace(c,'$1$2.$3');
}
正文完