
<Form
form={form}
name="validate_other"
onFinish={onFinish}
style={{ position: 'relative' }}
initialValues={{
applyType: 1,
}}
>
<Form.Item name="applyName" label="代理人" rules={FormValidator.notEmpty('代理人')}>
<Input placeholder="请输入代理人姓名" />
</Form.Item>
<Form.Item name="idNumber" label="身份证号" rules={FormValidator.idCard('身份证号')}>
<Input placeholder="请输入身份证号" onChange={changeIdCard} id="idCard" />
</Form.Item>
<Form.Item name="birthday" label="出生日期" rules={FormValidator.notEmpty('出生日期')}>
<DatePicker />
</Form.Item>
<Form.Item name="sex" label="性别" rules={FormValidator.notEmpty('性别')}>
<Radio.Group>
<Radio value={1}>男</Radio>
<Radio value={2}>女</Radio>
</Radio.Group>
</Form.Item>
<Form/>
提取身份证信息
const changeIdCard = (e: any) => {
let value = e.target.value;
const rule = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
if (rule.test(value)) {
let sex = getBirthdayFromIdCard(value, 2);
let birthday = getBirthdayFromIdCard(value, 1);
form.setFieldsValue({ 'sex': sex === '男' ? 1 : 2 });
form.setFieldsValue({ 'birthday': moment(birthday, dateFormat) });
}
};
封装getBirthdayFromIdCard,根据身份证号提取生日、性别信息
export const getBirthdayFromIdCard = (idCard:string, type:number) => {
let birthday = "";
let sex = "";
let birth = "";
if (idCard != null && idCard != "") {
if (idCard.length == 15) {
birthday = "19" + idCard.substr(6, 6);
sex = parseInt(idCard.substring(14, 1), 10) % 2 ? "男" : "女";
birth = idCard.substring(3, 7);
} else if (idCard.length == 18) {
birthday = idCard.substr(6, 8);
sex = parseInt(idCard.substring(17, 1), 10) % 2 ? "男" : "女";
birth = idCard.substring(6, 10);
}
birthday = birthday.replace(/(.{4})(.{2})/, "$1-$2-");
}
if (type === 1)
return birthday;
if (type === 2)
return sex;
if (type === 3) {
let myDate = new Date();
myDate.getFullYear();
return parseInt(myDate.getFullYear()) - parseInt(birth);
}
}