123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- 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;
|