正则规则集合
export const regs = {
positive: /^\+?[1-9][0-9]*$/, //正整数
natural: /^(([0-9]*[1-9][0-9]*)|(0+))$/, //自然数
twoDecimals: /^[0-9]+(.[0-9]{1,2})?$/, //有一两位小数的正实数
phone: /^1[1-9]\d{9}$/,//电话号码
user: /^[a-zA-Z0-9]{6,15}$/,//用户名
password: /^(?=.*\d)(?=.*[a-zA-Z])[\da-zA-Z]{6,15}$/,//密码
decimal1: /^[0-9]+(\.[0-9])?$/,//保留以为小数
phoneHk: /^(5|6|8|9)\d{7}$/,//香港电话号码
number: /^[0-9]+$/,//纯数字
landlinePhone: /^[0-9\(\)\(\)\+]{8,15}$/,//固定电话
creditCode: /^(?=.*\d)(?=.*[a-zA-Z])[\da-zA-Z]{7,18}$|^[0-9]{7,18}$/, //统一信用代码
idCard: /^[a-zA-Z0-9\(\)]{7,18}$/, //身份证号
idCards: /^[1-9]\d{16}[0-9xX]$/, //18位身份证号
vehicleNoPrefix: /^[a-zA-Z0-9]{2,10}$|^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z]+$/,//部分车牌号码
vehicleNumber:/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$|^[\u4e00-\u9fa5a-zA-Z0-9]{6,8}$/,//全国车牌号
word:/^[a-zA-Z]+$/ //纯字母
};
//示例:验证是否是正整数
export const dependPositiveInteger = (form: FormInstance, dependFiled: string) => {
return (v: any, cb: Function) => {
const isChecked = form.getFieldValue(dependFiled);
const reg = regs.positive;
if (isChecked) {
if (checkEmpty(v)) {
cb("必填");
} else if (!reg.test(v)) {
cb("格式不正确");
}
}
cb(null);
};
};
//表单使用
<FormItem
field="cancelTime"
rules={[{validator: dependPositiveInteger(form, "everyDay")}]}>
<Input type="number" placeholder=">=1的整数" addAfter="次" />
</FormItem>