function formatter(val, tail = 2) {
const reg = /\B(?=(\d{3})+(?!\d))/g;
const num = String(val);
if (/\.{1}/g.test(num)) {
const arr = num.split('.');
return `${arr[0].replace(reg, ',')}.${arr[1].substring(0, tail)}`;
}
return num.replace(reg, ',');
}
function formatTail(val, tail = 2) {
const reg = /\B(?=(\d{3})+(?!\d))/g;
const num = String(val);
const suffix = Array(tail).fill(0).join('');
if (/\.{1}/g.test(num)) {
const arr = num.split('.');
return `${arr[0].replace(reg, ',')}.${`${arr[1]}${suffix}`.substring(0, tail)}`;
}
const dot = suffix ? '.' : '';
return `${num.replace(reg, ',')}${dot}${suffix}`;
}
function parser(val, tail = 2) {
const index = val.lastIndexOf('.') + 1;
const reg = /\$\s?|(,*)/g;
if (index !== 0) {
return val.substring(0, (index + tail)).replace(reg, '');
}
return val.replace(reg, '');
}
function digitUppercase(price) {
const fraction = ['角', '分'];
const digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
const unit = [
['元', '万', '亿'],
['', '拾', '佰', '仟'],
];
let num = Math.abs(price);
let s = '';
fraction.forEach((item, index) => {
s += (digit[Math.floor(num * 10 * (10 ** index)) % 10] + item).replace(/零./, '');
});
s = s || '整';
num = Math.floor(num);
for (let i = 0; i < unit[0].length && num > 0; i += 1) {
let p = '';
for (let j = 0; j < unit[1].length && num > 0; j += 1) {
p = digit[num % 10] + unit[1][j] + p;
num = Math.floor(num / 10);
}
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
}
return s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整');
}
function telNoFormat(val) {
const reg = /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
const num = String(val);
return num.replace(reg, '');
}
const accMul = (arg1, arg2) => {
let m = 0; const s1 = arg1.toString(); const
s2 = arg2.toString();
try {
m += s1.split('.')[1].length;
} catch (e) {
}
try {
m += s2.split('.')[1].length;
} catch (e) {
}
return (Number(s1.replace('.', '')) * Number(s2.replace('.', ''))) / (10 ** m);
};
const accDiv = (arg1, arg2) => {
let t1 = 0;
let t2 = 0;
let r1 = 0;
let r2 = 0;
try {
t1 = arg1.toString().split('.')[1].length;
} catch (e) {
}
try {
t2 = arg2.toString().split('.')[1].length;
} catch (e) {
}
r1 = Number(arg1.toString().replace('.', ''));
r2 = Number(arg2.toString().replace('.', ''));
return (r1 / r2) * (10 ** (t2 - t1));
};
<InputNumber
min={0}
formatter={(value) => format(value)}
onBlur={(e) => setFieldsValue({ 'depositAllowance': format(Number(parser(e.target.value)).toFixed(2)) })}
/>
const format = (value) => {
const reg1 = `${value}`.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
const reg = /^(\d+)\.(\d\d).*$/;
return reg1.replace(/\B(?=(\d{3})+(?!\d))/g, ',').replace(reg, '$1.$2');
};