常用正则校验笔记

170 阅读2分钟

前言

       平时开发经常需要用到的正则校验在之前也经常在网上按需求查找。现在想将一些常用的正则纪录下来,实际上在chat ai被人们熟练使用后开发时需要正则公式就太方便了,可以直接按需求生成,所以感觉这个记录用处不大

正则方法

校验数字 正整数


export const checkNumber = (rule, value, callback) => {

  const reg = /^[1-9]+\d*$/;

  if (reg.test(value)) {

    callback();

  } else {

    return callback(new Error("请输入大于0的整数字"));

  }

};

校验输入不能为空

export const checkEmpty = (rule, value, callback) => {

  if (!value.trim()) {

    callback(new Error("输入不能为空"));

  } else {

    callback();

  }

};

校验 不包含汉字

export const checkEnglish = (rule, value, callback) => {

  const reg = /^[^\u4e00-\u9fa5]+$/;

  if (reg.test(value.trim())) {

    callback();

  } else {

    return callback(new Error("请输入英文"));

  }

};

校验 不包含字母

export const checkChinese = (rule, value, callback) => {

  const reg = /^[^a-zA-Z]+$/;

  if (reg.test(value)) {

    callback();

  } else {

    return callback(new Error("请输入中文"));

  }

};

校验 密码(可为空)

export const checkPasswordOrNull = (rule, value, callback) => {

  const reg = /^\w{6,12}$/;

  if (value) {

    if (reg.test(value)) {

      callback();

    } else {

      return callback(new Error("请输入字母数字组合,长度6-12位"));

    }

  } else {

    callback();

  }

};

校验 密码

export const checkPassword = (rule, value, callback) => {

  const reg = /^\w{6,12}$/;

  if (reg.test(value)) {

    callback();

  } else {

    return callback(new Error("请输入字母数字组合,长度6-12位"));

  }

};

只能输入中文/[^\u4E00-\u9FA5]/g

export const checkChineseInput = (rule, value, callback) => {

  const reg = /^[\u4E00-\u9FA5()()]{1,30}$/;

  if (reg.test(value.trim())) {

    callback();

  } else {

    return callback(new Error("只能输入中文"));

  }

};

只能输入数字,可输入01,最少要有1位数字

export const regNumber = (rule, value, callback) => {

  const reg = /^\d{1,}$/;

  if (reg.test(value)) {

    callback();

  } else {

    return callback(new Error("请输入数字"));

  }

};

只能输入数字和字母下划线

export const checkNumLetter_ = (rule, value, callback) => {

  const reg = /^[a-zA-Z0-9_]{1,}$/;

  if (reg.test(value)) {

    callback();

  } else {

    return callback(new Error("只能输入数字字母或下划线"));

  }

};

只能输入数字和字母

export const checkNumLetter = (rule, value, callback) => {

  const reg = /[0-9a-zA-Z]/;

  if (reg.test(value)) {

    callback();

  } else {

    return callback(new Error("请输入数字或者字母"));

  }

};

只能输入字母

export const checkLetter = (rule, value, callback) => {

  const reg = /[a-zA-Z]/;

  if (reg.test(value)) {

    callback();

  } else {

    return callback(new Error("请输入字母"));

  }

};

可以输入0和大于0的整数字

export const regWeight = (rule, value, callback) => {

  const reg = /^[1-9]+\d*$/;

  if (value == "0") {

    return callback();

  } else {

    if (reg.test(value)) {

      callback();

    } else {

      return callback(new Error("请输入整数字"));

    }

  }

};

输入数字并保留3位小数

export const checkNumber3 = (rule, value, callback) => {

  const reg = /^\d*\.?\d{0,3}$/;

  if (reg.test(value)) {

    callback();

  } else {

    return callback(new Error("只能输入数字并保留3位小数"));

  }

};

输入数字并保留2位小数

export const checkPrice = (rule, value, callback) => {

  const reg = /^\d+.?\d{0,2}$/;

  if (reg.test(value)) {

    callback();

  } else {

    return callback(new Error("只能输入数字并保留2位小数"));

  }

};

输入字母汉字,4-11(可为空)

export const checkNameOrNull = (rule, value, callback) => {

  const reg = /^[\u4e00-\u9fa5_a-zA-Z0-9]{2,9}$/;

  if (value) {

    if (reg.test(value)) {

      callback();

    } else {

      return callback(new Error("请输入字母文字或数字,长度2-9位"));

    }

  } else {

    callback();

  }

};

校验数字 8-9位正整数(可为空)

export const checkNumberOrNull = (rule, value, callback) => {

  const reg = /^[1-9]\d{7,8}$/;

  if (value) {

   

    if (reg.test(value)) {

      callback();

    } else {

      return callback(new Error("请输入整数字,长度8-9位,首位不得为0"));

    }

  } else {

    callback();

  }

};