ant-design表单验证手机号身份证号
<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>