/**
 * @description 输入限制为数字的验证
 * @param value 输入的值
 * @param integerDigits 整数位数(默认为8位)
 * @param decimalDigits 小数位数(默认为4位)
 * @returns value 验证后的value
 */
export const restrictIntAndDecDigits = (value: any, integerDigits: number = 8, decimalDigits: number = 4) => {
    if (value) {
        if (value.toString().indexOf(".") !== -1) {
            let value_after = parseInt(value.toString().substring(0, value.indexOf(".")));
            let value_before = value.replace(/\d+\.(\d*)/, "$1");
            // 根据传入的整数位数限制处理整数部分
            if (value_after.toString().length > integerDigits) {
                let newValue = value_after.toString().substring(0, integerDigits) + "." + value_before;
                return (newValue.toString().match(new RegExp(`\\d{1,${integerDigits}}(\\.\\d{0,${decimalDigits}})?`)) || [""])[0];
            } else {
                return (value.toString().match(new RegExp(`\\d{1,${integerDigits}}(\\.\\d{0,${decimalDigits}})?`)) || [""])[0];
            }
        }
        return (value.toString().match(new RegExp(`\\d{1,${integerDigits}}(\\.\\d{0,${decimalDigits}})?`)) || [""])[0];
    } else {
        return "";
    }
};
