美文网首页
表单校验总结

表单校验总结

作者: 萤火kin | 来源:发表于2022-03-29 18:40 被阅读0次

表单校验总结

邮箱

{
    pattern: /^\w[-\w.+]*@([-_A-Za-z0-9]+\.)+[A-Za-z][-_A-Za-z]{1,14}$/,
    message: '邮箱格式不正确',
    trigger: 'blur'
},

身份证号码

{
    pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
    message: "请输入正确的身份证号",
    trigger: "blur",
},

手机号

{
     pattern: /^1\d{10}$/,
     message: "手机号格式不正确",
     trigger: "blur",
},

只可输入阿拉伯数字

{
    required: true,
    pattern: /^[0-9]+$/g,
    message: "请输入阿拉伯数字",
    trigger: "blur",
},

字母数字密码8-20位

{
    pattern: /^(?=.*[A-Za-z])(?=.*\d)[^\u4e00-\u9fa5]{8,20}$/,
    message: '密码必须且只能包含字母和数字',
    trigger: 'blur'
},

密码包含大小写和数字,不少于8位

{ 
    pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/, 
    message: '密码包含大小写和数字,不少于8位', 
    trigger: 'blur' 
},

包含数字、字母大写及小写、特殊字符,长度8-16位

{ 
    pattern: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@#$%^&*])[\da-zA-Z~!@#$%^&*]{8,16}$/, 
    message: '密码8到16位,含字母大写及小写、数字和特殊字符', 
    trigger: 'blur' 
},

包含数字、字母、特殊字符,长度8-16位

{ 
    pattern: /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*])[\da-zA-Z~!@#$%^&*]{8,16}$/,
    message: '密码8到16位,含字母、数字和特殊字符', 
    trigger: 'blur' 
},

长度8-20位

{
    pattern: /^.{8,20}$/,
    message: '长度在 8 到 20 个字符',
    trigger: 'blur'
},

用户名支持字母、数字、横线- 、下划线 _ ,但不支持全数字

{
    pattern: /^(?!(\d+)$)[\w-]+$/,
    message: '用户名支持字母、数字、横线- 、下划线 _ ,但不支持全数字',
    trigger: 'blur'
},

角色名称为中文+英文字符,最多20个字符

{ 
    required: true,pattern: /^([a-zA-Z\u4E00-\u9FA5]){1,20}$/, 
    message: '角色名称为中文+英文字符,最多20个字符', 
    trigger: 'blur' 
},

金额限制

const regAcountFun = (rule, value, callback, name, len = 99999999.99) => {
    if (value > len) {
        callback(new Error(`${name}最多不能超过99999999.99`));
    } else {
        callback();
    }
};
acount: [
    { required: true, message: '单日总额限制不能为空', trigger: 'blur' },
    { required: true,pattern: /(^[0-9]([0-9]+)?(\.[0-9]+)?$)/g, message: '只支持阿拉伯数字', trigger: 'blur' },
    { required: true, validator: (rule, value, callback) => regAcountFun(rule, value, callback, '单日总额限制', 99999999.99), trigger: 'blur' }
],

金额小数点限制

参考: https://blog.csdn.net/xuqipeter/article/details/79178877

{
    required: true,
    pattern: /^[0-9]+$/g,
    message: "只支持阿拉伯数字,且只能为正数",
    trigger: "blur",
},
{
    required: true,
    pattern: /(^[0-9]([0-9]+)?(\.[0-9]{1,2})?$)/g,
    message: "只支持阿拉伯数字,且不能超过2位小数",
    trigger: "blur",
},


// 正小数,小数点后两位,数值最前不能有0。 //'(\.[0-9]{1,2})?$)'修改其中的'2',可以改变小数点后位数的验证
var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
var money = "520.100";
console.log(reg.test(money));//true
//000 错 //0 对 //0. 错 //0.0 对 //050 错 //00050.12错 //70.1 对 //70.11 对 //70.111错 //500 正确 

密码修改确认密码校验

let checkConfirmPassword = function (rule, value, callback) {
  const {
    ruleForm: { newPassword, confirmPassword },
  } = this;
  return newPassword === confirmPassword;
};


confirmPassword: [
  {
    required: true,
    message: "请输入新密码",
    trigger: "blur",
  },
  {
    pattern: /^.{6,20}$/,
    message: "长度在 6 到 20 个字符",
    trigger: "blur",
  },
  {
    validator: checkConfirmPassword.bind(this),
    trigger: "submit",
    message: "确认密码与新密码不一致,请确认",
  },
],


## 密码必须是大写字母、小写字母、数字和特殊字符组成,且长度为8到20位
 {
                    pattern: /(?=.*\d)(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,20}/,
                    message: '密码必须是大写字母、小写字母、数字和特殊字符组成,且长度为8到20位',
                  },

react

  const [form] = Form.useForm();
  //  密码验证
  const passwordValidator = (rule: any, value: any, callback: any) => {
    const { getFieldValue } = form;
    if (value === '') {
      callback('请输入新密码');
    }
    if (!/^\d{8,20}$/.test(value)) {
      callback('长度在 8 到 20 个字符');
    }
    if (value && value !== getFieldValue('password')) {
      callback('两次输入不一致!');
    }
    // 必须总是返回一个 callback,否则 validateFields 无法响应
    callback();
  };


<Form.Item
  name="password"
  initialValue={''}
  validateTrigger="onBlur"
  rules={[
    { required: true, message: '请输入新密码' },
    {
      pattern: /^.{8,20}$/,
      message: '长度在 8 到 20 个字符',
    },
  ]}
>
  <Input.Password placeholder="6-16位新密码" />
</Form.Item>
<Form.Item
  name="passwordCon"
  initialValue={''}
  validateTrigger="onBlur"
  rules={[
    {
      validator: passwordValidator,
    },
  ]}
>
  <Input.Password placeholder="确认新密码" />
</Form.Item>

相关文章

网友评论

      本文标题:表单校验总结

      本文链接:https://www.haomeiwen.com/subject/fgqpjrtx.html