import {Toast} from "@ant-design/react-native";

const CheckValid = (value, type) => {
    if (type === 'ID') {
        const aCity = {
            11: "北京",
            12: "天津",
            13: "河北",
            14: "山西",
            15: "内蒙古",
            21: "辽宁",
            22: "吉林",
            23: "黑龙江",
            31: "上海",
            32: "江苏",
            33: "浙江",
            34: "安徽",
            35: "福建",
            36: "江西",
            37: "山东",
            41: "河南",
            42: "湖北",
            43: "湖南",
            44: "广东",
            45: "广西",
            46: "海南",
            50: "重庆",
            51: "四川",
            52: "贵州",
            53: "云南",
            54: "西藏",
            61: "陕西",
            62: "甘肃",
            63: "青海",
            64: "宁夏",
            65: "新疆",
            71: "台湾",
            81: "香港",
            82: "澳门",
            91: "国外"
        }
        let iSum = 0;
        // 香港身份证
        if (/^[A-Z]{1,2}[0-9]{6}\(?[0-9A]\)?$/i.test(value))
            return true;

        // 澳门身份证
        if (/^[1|5|7][0-9]{6}\([0-9Aa]\)/i.test(value))
            return true;

        // 护照
        if (/^[A-Z]{1,2}[0-9]{8}$/i.test(value))
            return true;

        // 台湾身份证
        if (/^[a-zA-Z][0-9]{9}$/i.test(value))
            return true;

        if (!/^\d{17}(\d|x)$/i.test(value))
            return false;

        const sId = value.replace(/x$/i, "a");
        if (aCity[parseInt(sId.substr(0, 2))] == null)
            return false;
        //return "Error:非法地区";

        const sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2));
        var d = new Date(sBirthday.replace(/-/g, "/"));
        if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate()))
            return false;
        //return "Error:非法生日";

        for (var i = 17; i >= 0; i--)
            iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11)

        if (iSum % 11 !== 1)
            return false;
        //return "Error:非法证号";

        //alert(aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女") );
        //return {province:aCity[parseInt(sId.substr(0,2))],
        //		birthday:sBirthday,
        //		gender:(sId.substr(16,1)%2?"男":"女") };
        return true;
    }
    else if (type === 'orgin') {
        if (/[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}/g.test(value))
            return true;
        return false;
    }
    else if (type === 'tel') {
        if (!value) {
            return false
        }
        if (!/^1[3456789]\d{9}$/.test(value) && !/^([0-9]{3,4}-)?[0-9]{7,8}$/.test(value)) {
            return false
        }
        return true
    }
    else if (type === 'num') {
        if (parseFloat(value) < 0 || isNaN(value)){
            return false
        }
        return true
    }
    return true
}

export default CheckValid;
