import { useMsg } from "@/hooks/useMsg";
//只允许输入数字和6位小数
export const inputEnterRexg = function (inputValue: any, empty?: any) {
    inputValue = inputValue.replace(/[^\d.]/g, ""); // 清除"数字"和"."以外的字符 只能输入数字和小数点
    inputValue = inputValue.replace(/\.{2,}/g, "."); // 不能连续输入两个及以上小数点
    inputValue = inputValue.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); // 只保留第一个".", 清除多余的"."
    inputValue = inputValue.replace(/^(-)*(\d+)\.(\d\d\d\d\d\d).*$/, "$1$2.$3"); // 只能输入六位小数
    if (inputValue && inputValue.indexOf(".") < 0 && inputValue != "") {
        inputValue = parseFloat(inputValue);
        inputValue = inputValue + "";
        inputValue = inputValue.slice(0, 8);
    } // 如果没有小数点，首位不能为类似于 01、02的值
    // 输入过程中，只能输入六位小数且六位小数都为零，则清空小数点和后面的六个零（如果输入完成了只输入四个零，则在blur事件中处理）
    if (inputValue.indexOf(".") > 0 && inputValue.length - inputValue.indexOf(".") > 6) {
        let str = inputValue.slice(inputValue.indexOf("."), inputValue.length);
        if (str / 1 <= 0) {
            inputValue = inputValue.replace(str, "");
        }
    }
    if (inputValue.length > 15) {
        useMsg("warning", "仅限数字输入，小数点后最多6位，小数点前最多8位,请重新输入");
        return empty ? "" : 0;
    } else {
        return inputValue;
    }
};
