使用react的组件库的form表单为输入框。
需要先引入组件,关于日期的moment,首先需要通过以下步骤进行安装:
1. 使用 npm 安装
如果你的项目是 Node.js 环境或者使用了 npm/yarn 管理依赖,可以通过以下命令安装:
npm install moment --save
给证件号码的输入框绑定onChange事件为handleIdCardChange。
处理身份证号,先判断是否符合标准,符合标准后去身份证的有效信息。
import { Button, Drawer, Form, Input, Modal, Select} from 'antd';
import React, { useEffect, useState } from 'react';
// 抽屉页面的标签栏
import type { TabsProps } from 'antd';
// 日期
import { DatePicker } from 'antd';
import moment from 'moment'; // 引入 moment.js 库
const { Option } = Select;
// 处理身份证号输入
const handleIdCardChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const idCard = e.target.value;
// 判断身份证号是否符合标准(长度是18位)
if (idCard.length === 18) {
// 提取性别(身份证第17位,奇数为男,偶数为女)
const sex = parseInt(idCard.charAt(16)) % 2 === 0 ? '女' : '男';
// 提取出生日期(身份证第7-14位是出生日期,格式为YYYYMMDD)
const birthDate = idCard.substring(6, 14); // YYYYMMDD格式
const year = birthDate.substring(0, 4);
const month = birthDate.substring(4, 6);
const day = birthDate.substring(6, 8);
const birthday = `${year}-${month}-${day}`;
// 将字符串格式的生日转换为 moment 对象
const formattedBirthday = moment(birthday, 'YYYY-MM-DD');
// 填充性别和生日
form.setFieldsValue({
sex: sex,
birthday: formattedBirthday, // 设置为 moment 对象
});
}
};
<Form.Item
label="证件号码"
name="idcard"
rules={[{ required: true, message: '请输入证件号码' }]}
style={{ width: 220 }}
>
<Input
placeholder="请输入证件号码"
onChange={handleIdCardChange}
defaultValue={editData.idcard}
/>
</Form.Item>
<Form.Item
label="性别"
name="sex"
rules={[{ required: true, message: '输入身份证号自动填充' }]}
style={{ width: 220 }}
>
<Select placeholder="输入身份证号自动填充" disabled defaultValue={editData.sex}>
<Option value="男">男</Option>
<Option value="女">女</Option>
</Select>
</Form.Item>
<Form.Item
label="生日"
name="birthday"
rules={[{ required: true, message: '输入身份证号自动填充' }]}
style={{ width: 220 }}
>
<Input
type="text"
style={{ width: '100%' }}
disabled
defaultValue={editData.birthday}
placeholder="输入身份证号自动填充"
/>
</Form.Item>