ant-design表单验证手机号身份证号

时间:2025-02-07 15:19:11
<Form.Item label="电话" name="phone" rules={[{required: true, message: '请输入电话', max: 11}, ({getFieldValue}) => ({ validator(_, e: any) { const value = getFieldValue('phone'); if(value){ if (value.length === 11 && !(/^(1[3456789]|9[28])\d{9}$/).test(value)) { return Promise.reject(new Error('请输入11位有效电话号码!')); } if (value.length !== 11) { return Promise.reject(new Error('请输入11位电话号码!')); } return Promise.resolve(); } return Promise.resolve(); }, }), ]} > <Input maxLength={100} placeholder='请输入电话' /> </Form.Item> <Form.Item label="身份证号" name="idCard" rules={[{required: true, message: '请输入身份证号'},{ whitespace: true }, ({getFieldValue}) => ({ validator(_, e: any) { const value = getFieldValue('idCard'); if(value) { if (value.length === 18 && !(/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9X]$/.test(value))) { return Promise.reject(new Error('请输入18或15位有效身份证号!')); } if (value.length == 15 && !(/^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$/.test(value))) { return Promise.reject(new Error('请输入18或15位有效身份证号!')); } return Promise.resolve(); } return Promise.resolve(); }, }), ]} > <Input maxLength={100} placeholder='请输入身份证号' /> </Form.Item>