signed

QiShunwang

“诚信为本、客户至上”

实用的正则

2021/3/21 10:41:17   来源:
/*
 * @Description: 表单验证的校验规则
 * @Date: 2020-11-16 14:08:13
 * @LastEditTime: 2020-04-16 17:11:47
 * @LastEditors: 七月
 */
import _ from 'lodash';
// 密码校验
let $rulesOfPWD = (rule, value, callback) => {
  if (/^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*).{6,15}$/.test(value)) {
    callback();
  } else {
    callback(new Error('密码须包含数字、大写字母、小写字母,长度为6-15位'));
  }
};
// 身份证校验
let $rulesOfIdNo = (rule, value, callback) => {
  if (value) {
    if (/(^[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-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('请输入正确格式的身份证号码'));
    }
  } else {
    callback();
  }
};
// 手机校验
let $rulesOfMobile = (rule, value, callback) => {
  if (value) {
    if (_.isString(value) && (/^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(value) || _.isUndefined(value) || value === '')) {
      callback();
    } else {
      callback(new Error('请输入正确格式的手机号码'));
    }
  } else {
    callback();
  }
};
// 电话校验
/* let $rulesOfPhone = (rule, value, callback) => {
  if (/(^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{6}|\d{5}|\d{4}|\d{3}|\d{2}|\d{1}))$)/.test(value) || _.isUndefined(value) || value === '') {
    callback();
  } else {
    callback(new Error('请输入正确格式的电话号码'));
  }
}; */

// 电话校验(手机号码或者座机电话格式区号-号码)
let $rulesOfPhone = (rule, value, callback) => {
  if (value) {
    if (_.isString(value) && (/^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(value) || /^(((\d{4}|\d{3})-(\d{7,8}))|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/.test(value) || value === '')) {
      callback();
    } else {
      callback(new Error('请输入正确格式的电话号码'));
    }
  } else {
    callback();
  }
};
// let $rulesOfPhone = (rule, value, callback) => {
//   if (_.isUndefined(value) || value == null || (_.isString(value) && (/^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(value) || /^(((\d{4}|\d{3})-(\d{7,8}))|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/.test(value) || value === ''))) {
//     callback();
//   } else {
//     callback(new Error('请输入正确格式的电话号码'));
//   }
// };
// 电话校验(座机电话格式应为  区号-电话(-分机号))
let $rulesOfTelPhone = (rule, value, callback) => {
  if (value) {
    if (/^(((\d{4}|\d{3})-(\d{7,8}))|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('请输入正确格式的电话号码'));
    }
  } else {
    callback();
  }
};
// 邮箱校验
let $rulesOfEmail = (rule, value, callback) => {
  if (value) {
    if (/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('请输入正确格式的邮箱'));
    }
  } else {
    callback();
  }
};
// 非汉字正则校验(账号)
let $rulesOfAcount = (rule, value, callback) => {
  if (_.isUndefined(value) || value === '' || /^[^\u4e00-\u9fa5]+$/.test(value)) {
    callback();
  } else {
    callback(new Error('请输入正确格式的账号'));
  }
};
// 纳税人识别号,由15、18或者20位码组成,统一社会信用代码
let $rulesOfNumber = (rule, value, callback) => {
  if (_.isUndefined(value) || value == '' || value == null || (_.isString(value) && /^([0-9A-HJ-NOPQRTUWXY]{2}\d{6}[0-9A-HJ-NOPQRTUWXY]{10}|[1-9]\d{14}|[1-9]\d{11}|[1-9]\d{19})$/.test(value))) {
    callback();
  } else {
    callback(new Error('请输入15、18或者20位纳税人识别号'));
  }
};
// 通讯地址正则表达式
let $rulesOfPostalAddress = (rule, value, callback) => {
  if (/^[\u0391-\uFFE5\w]+$/.test(value) || _.isUndefined(value) || value === '') {
    callback();
  } else {
    callback(new Error('请输入中英文字符、数字及下划线'));
  }
};
/* 经办人姓名校验 */
let $attentioLine = (rule, value, callback) => {
  if (/^([\u4e00-\u9fa5.\s]{2,30}$|[a-zA-Z.\s]{2,30}$)/.test(value)) {
    callback();
  } else {
    callback(new Error('姓名格式错误'));
  }
};
// 用户名称
let $userName = (rule, value, callback) => {
  if (value) {
    if (/^([\u4e00-\u9fa5.\s]{2,30}$|[a-zA-Z.\s]{2,30}$)/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('用户名称格式错误'));
    }
  } else {
    callback();
  }
};
/* 经办人通讯地址 */
let $mailingAddress = (rule, value, callback) => {
  /* 暂时注掉,后续需要放开 */
  if (value) {
    // eslint-disable-next-line no-control-regex
    // if (value.replace(/[^\x00-\xff]/g, '01').length < 8 || value.replace(/[^\x00-\xff]/g, '01').length > 200) {
    //   callback(new Error('经办人通讯地址长度必须介于 8-200位字符 之间(一个汉字算两位字符)'));
    // }
    if (value.length < 8 || value.length > 200) {
      callback(new Error('经办人通讯地址长度必须介于 8-200位之间'));
    } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('经办人通讯地址只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
  // if (value) {
  //   if (value.length < 8 || value.length > 200) {
  //     callback(new Error('用户地址长度必须介于 8-200位字符 之间'));
  //   } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value)) {
  //     callback();
  //   } else {
  //     callback(new Error('用户地址只允许输入中英文字符、数字及下划线'));
  //   }
  // } else {
  //   callback();
  // }
};
/* 个人注册地址 */
let $mailingPersonAddress = (rule, value, callback) => {
  if (value) {
    if (value.length < 8 || value.length > 200) {
      callback(new Error('通讯地址长度必须介于 8-200位字符 之间'));
    } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('通讯地址只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
};
/* 企业名称 */
let $unitName = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length < 2 || value.replace(/[^\x00-\xff]/g, '01').length > 100) {
      callback(new Error('企业注册名称长度必须介于 2-100位字符 之间(一个汉字算两位字符)'));
    } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('企业注册名称只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
};
/* 企业注册地址 */
let $unitAddress = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    // if (value.replace(/[^\x00-\xff]/g, '01').length < 8 || value.replace(/[^\x00-\xff]/g, '01').length > 100) {
    //   callback(new Error('企业地址长度必须介于 8-100位字符 之间(一个汉字算两位字符)'));
    // }
    if (value.length < 8 || value.length > 100) {
      callback(new Error('企业地址长度必须介于 8-100位之间'));
    } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('企业地址只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
};
/* 地址 */
let $fwlxqAddress = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length < 8 || value.replace(/[^\x00-\xff]/g, '01').length > 200) {
      callback(new Error('地址长度必须介于 8-200位字符 之间(一个汉字算两位字符)'));
    } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('地址只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
};
/* 营业执照号 */
let $businessCode = (rule, value, callback) => {
  if (value) {
    if (/^[\w!@#$%^&*()<>{},.?-_]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('营业执照号不能填写中文'));
    }
  } else {
    callback();
  }
};
/* 邮政编码 */
let $enterprisePostcode = (rule, value, callback) => {
  if (value) {
    if (/^[0-9]{6}$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('请输入正确的邮政编码'));
    }
  } else {
    callback();
  }
};
/* 注册资金 */
let $registeredCapital = (rule, value, callback) => {
  if (value) {
    if (/^([0-9]+\.?)?[0-9]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('注册资金只能为正数'));
    }
  } else {
    callback();
  }
};
let $accountBank = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length < 8 || value.replace(/[^\x00-\xff]/g, '01').length > 250) {
      callback(new Error('开户行名称长度必须介于 8-250位字符 之间(一个汉字算两位字符)'));
    } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('开户行名称只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
};
/* 法定代表人姓名 */
let $representative = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length < 2 || value.replace(/[^\x00-\xff]/g, '01').length > 30) {
      callback(new Error('法定代表人长度必须介于 2-30位字符 之间(一个汉字算两位字符)'));
    } else if (/^([\u4e00-\u9fa5.\s]{2,30}$|[a-zA-Z.\s]{2,30}$)/.test(value)) {
      callback();
    } else {
      callback(new Error('法定代表人姓名填写错误'));
    }
  } else {
    callback();
  }
};
// 发特征字典管理-代码正则(代码最长字符为6位,为数字与字母组合;)
let $rulesOfdm = (rule, value, callback) => {
  if (value == '' || value == null) callback();
  if (/^[a-zA-Z0-9]{1,6}$/.test(value)) {
    callback();
  } else {
    callback(new Error('代码最长字符为6位,为数字与字母组合'));
  }
};
/* 正整数校验(第一个数字不能以0开头) */
let $positiveInt = (rule, value, callback) => {
  if (value == '' || value == null) callback();
  if (/^[1-9]\d*$/.test(value)) {
    callback();
  } else {
    callback(new Error('请输入正整数'));
  }
};

/* 数字(带小数点) */
let $positiveNumber = (rule, value, callback) => {
  if (value == '' || value == null) callback();
  if (/^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/.test(value)) {
    callback();
  } else {
    callback(new Error('请输入数字'));
  }
};

/* 数字(不带小数点) */
let $positiveNumberNoDot = (rule, value, callback) => {
  if (value == '' || value == null) callback();
  if (/^[0-9]*$/.test(value)) {
    callback();
  } else {
    callback(new Error('请输入数字'));
  }
};
let $dunNumber = (rule, value, callback) => {
  if (value) {
    if (/^[0-9]+(.[0-9]{1})?$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('只能输入大于0的数字,最多一位小数'));
    }
  } else {
    callback();
  }
};
/* 日运输需求最大单件重量 */
let $addDaysReportWeight = (rule, value, callback) => {
  if (value) {
    if (/^[1-9]\d*$/.test(value)) {
      callback();
    } else {
      callback(new Error('最大单件重量必须为正整数'));
    }
  } else {
    callback();
  }
};
/* 日运输需求吨数 */
let $addDaysReportTon = (rule, value, callback) => {
  if (value) {
    if (/^[1-9]\d*$/.test(value)) {
      callback();
    } else {
      callback(new Error('吨数只能是正整数'));
    }
  } else {
    callback();
  }
};
// let $addDaysKellom = (rule, value, callback) => {
//   if (value) {
//     if (/^[1-9]\d*$/.test(value)) {
//       callback();
//     } else {
//       callback(new Error('里程只能是正整数'));
//     }
//   } else {
//     callback();
//   }
// };
/* 日运输需求车数 */
let $addDaysReportCs = (rule, value, callback) => {
  if (value) {
    if (/^[1-9]\d*$/.test(value)) {
      callback();
    } else {
      callback(new Error('车数只能是正整数'));
    }
  } else {
    callback();
  }
};
/* 行业代码 */
let $industryCode = (rule, value, callback) => {
  if (value) {
    if (/^[\w!@#$%^&*()<>{},.?-_]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('行业代码不允许为中文'));
    }
  } else {
    callback();
  }
};
/* 组织机构代码 */
let $orgCode = (rule, value, callback) => {
  if (value) {
    if (/^[0-9a-zA-Z|-]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('无效的组织机构代码'));
    }
  } else {
    callback();
  }
};
/* 纳税人识别号 */
let $taxpayerCode = (rule, value, callback) => {
  if (_.isUndefined(value) || value == null || (_.isString(value) && (value == '' || /^[a-zA-Z0-9_]+$/.test(value)))) {
    callback();
  } else {
    callback(new Error('纳税人识别号由15、18或者20位码组成'));
  }
};
/* 日需求直接提报发货地址 */
let $ddGoodsAddress = (rule, value, callback) => {
  if (value == '' || value == undefined) {
    callback();
  } else {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length < 8 || value.replace(/[^\x00-\xff]/g, '01').length > 100) {
      callback(new Error('地址长度必须介于 8-100位字符 之间(一个汉字算两位字符)'));
    }
    if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('地址只允许输入中英文字符、数字及下划线'));
    }
  }
};
// 日需求货区货位
let $ddHqhw = (rule, value, callback) => {
  if (value == '' || value == undefined) {
    callback();
  } else {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length > 10) {
      callback(new Error('货区货位长度不超过10字符'));
    } else {
      callback();
    }
  }
};
// 日需求受票方名称
let $ddSpfMc = (rule, value, callback) => {
  if (value === '') {
    callback();
  } else {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length > 70) {
      callback(new Error('受票方名称长度不超过35汉字或70字符(一个汉字算两位字符)'));
    } else {
      callback();
    }
  }
};
// 日需求开户行 只能包括中文字、英文字母、英文横杠、英文点、井号、数字和下划线
let $ddNsrkhh = (rule, value, callback) => {
  if (value == '' || value == undefined) {
    callback();
  } else {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length > 170 || !(/^[\u0391-\uFFE5+.#/-\w-]+$/.test(value))) {
      callback(new Error('开户行长度不超过85汉字或170字符(一个汉字算两位字符)'));
    } else {
      callback();
    }
  }
};
// 日需求账号(汉字之外)
let $ddNsrzh = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length > 30) {
      callback(new Error('账号长度不超过30字符(一个汉字算两位字符)'));
    } else if (/^[^\u4e00-\u9fa5]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('请输入正确格式的账号'));
    }
  } else {
    callback();
  }
};
// 日需求托运人记载事项
let $ddKhmemo = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length > 500) {
      callback(new Error('托运人记载事项长度不超过250汉字或500字符(一个汉字算两位字符)'));
    } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('托运人记载事项只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
};
// 日需求发送端地址
let $ddFxxdz = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length < 8 || value.replace(/[^\x00-\xff]/g, '01').length > 50) {
      callback(new Error('发送端地址长度必须介于 8-50位字符 之间(一个汉字算两位字符)'));
    } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('发送端地址只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
};
// 日需求纳税地址
let $ddNsrdz = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length > 200) {
      callback(new Error('纳税地址长度不超过100汉字或200字符(一个汉字算两位字符)'));
    } else {
      callback();
    }
  } else {
    callback();
  }
};
// 日需求联系人
let $ddLxrname = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length > 20) {
      callback(new Error('联系人长度不超过20字符(一个汉字算两位字符)'));
    } else {
      callback();
    }
  } else {
    callback();
  }
};
// 铁危编号
let $rulesOfTwbh = (rule, value, callback) => {
  if (value) {
    if (/^(\d){5}[A-Z]?$/.test(value)) {
      callback();
    } else {
      callback(new Error('由5位的纯数字或5位数字加1位大写字母组成'));
    }
  } else {
    callback();
  }
};
/* 备注 */
let $czcxmemo = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length > 500) {
      callback(new Error('备注长度小于500位(一个汉字算两位字符)'));
    } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('备注只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
};
/* 正数 */
let $registeredZs = (rule, value, callback) => {
  if (value) {
    if (/^([0-9]+\.?)?[0-9]+$/.test(value)) {
      callback();
    } else {
      callback(new Error('请输入正确的数字及正数'));
    }
  } else {
    callback();
  }
};
/* 军运号 */
let $pzycfh = (rule, value, callback) => {
  if (value) {
    if (/[0-9]+\/?[0-9]+/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('请输入有效的军运号'));
    }
  } else {
    callback();
  }
};
// 我要发货联系人姓名(老系统正则)
let $goodsUsername = (rule, value, callback) => {
  if (value) {
    if (/^[\u0391-\uFFE5,.@()\s\w-]+$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('只能包括中文字、英文字母、数字、逗号、句号、@、空格和括号'));
    }
  } else {
    callback();
  }
};
// 我要发货取货里程(大于等于0,且最多两位小数)
let $goodsQhlc = (rule, value, callback) => {
  if (value) {
    if (/^(0|[1-9]\d*)(\.\d{1,2})?$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('只能输入大于0的数字,最多两位小数'));
    }
    // if (/^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/.test(value) || _.isUndefined(value) || value === '') {
    //   callback();
    // } else {
    //   callback(new Error('取货里程只能输入数字'));
    // }
  } else {
    callback();
  }
};
// 我要发货取货地址(老系统正则)
let $goodsQhaddr = (rule, value, callback) => {
  if (value) {
    if (/^[\u0391-\uFFE5\w()()]+$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('取货地址只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
};
// 我要发货件数(老系统正则)
let $goodsHwjs = (rule, value, callback) => {
  if (value) {
    if (/^[1-9]*[1-9][0-9]*$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('只能输入正整数'));
    }
  } else {
    callback();
  }
};
// 非负数
let $nonNegativeNumber = (rule, value, callback) => {
  if (value) {
    if (/^((0{1})|([1-9]{1}[0-9]*)|([1-9]+[0-9]*\.[0-9]+)|([0]{1}\.[0-9]+))$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('只能输入非负数'));
    }
  } else {
    callback();
  }
};
/* 自助办理-通信地址 */
let $tbBusiYsxqFhdwdz = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length < 8 || value.replace(/[^\x00-\xff]/g, '01').length > 100) {
      callback(new Error('发货地址长度必须介于 8-100位字符 之间(一个汉字算两位字符)'));
    } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('通信地址只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
};
/* 自助办理-通信地址 */
let $tbBusiYsxqShdwdz = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length < 8 || value.replace(/[^\x00-\xff]/g, '01').length > 100) {
      callback(new Error('收货地址长度必须介于 8-100位字符 之间(一个汉字算两位字符)'));
    } else if (/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('通信地址只允许输入中英文字符、数字及下划线'));
    }
  } else {
    callback();
  }
};
// 门到站,站到门联系人姓名(老系统正则)
let $wlServerName = (rule, value, callback) => {
  if (value) {
    if (/[\u4E00-\u9FA5]{2,5}(?:·[\u4E00-\u9FA5]{2,5})*/.test(value) || /^[a-zA-Z]{2,5}(?:·[a-zA-Z]{2,5})*/.test(value)) {
      callback();
    } else {
      callback(new Error('请输入姓名'));
    }
  } else {
    callback();
  }
};
// 温度(正整数负整数0)
let $temperature = (rule, value, callback) => {
  if (value) {
    if (/^-?\d+$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('温度只能输入整数'));
    }
  } else {
    callback();
  }
};
// 统一信用代码校验
let $shxydm = (rule, value, callback) => {
  if (value) {
    if (/^([0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}|[1-9]\d{14})$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('请输入正确的统一信用代码校验'));
    }
  } else {
    callback();
  }
};
let $desmesisdn = (rule, value, callback) => {
  if (value) {
    if (/^\d+(,\d+)*$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('电话号码只能包含数字和英文逗号,且逗号不能在首尾'));
    }
  } else {
    callback();
  }
};
/* 最多输入80位字符或40个汉字 */
let $inputTextLength = (rule, value, callback) => {
  if (value) {
    // eslint-disable-next-line no-control-regex
    if (value.replace(/[^\x00-\xff]/g, '01').length > 80) {
      callback(new Error('长度必须介于 1-80位字符 之间(一个汉字算两位字符)'));
    } else {
      callback();
    }
  } else {
    callback();
  }
};
let $ldtel = (rule, value, callback) => {
  if (value) {
    if (/^[\w-]+$/.test(value) || _.isUndefined(value) || value === '') {
      callback();
    } else {
      callback(new Error('只能输入数字、中英文大小写、中划线'));
    }
  } else {
    callback();
  }
};
/* 大于0的数字(带小数点最多2位) */
let $noZeroPositiveNumber = (rule, value, callback) => {
  if (value) {
    if (/(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/.test(value)) {
      callback();
    } else {
      callback(new Error('请输入大于0的数字,最多两位小数'));
    }
  } else {
    callback();
  }
};
export default {
  $rulesOfPWD: $rulesOfPWD,
  $rulesOfIdNo: $rulesOfIdNo,
  $rulesOfMobile: $rulesOfMobile,
  $rulesOfPhone: $rulesOfPhone,
  $rulesOfTelPhone: $rulesOfTelPhone,
  $rulesOfAcount: $rulesOfAcount,
  $rulesOfNumber: $rulesOfNumber,
  $rulesOfEmail: $rulesOfEmail,
  $rulesOfPostalAddress: $rulesOfPostalAddress,
  $attentioLine: $attentioLine,
  $userName: $userName,
  $mailingAddress: $mailingAddress,
  $mailingPersonAddress: $mailingPersonAddress,
  $fwlxqAddress: $fwlxqAddress,
  $unitName: $unitName,
  $unitAddress: $unitAddress,
  $businessCode: $businessCode,
  $enterprisePostcode: $enterprisePostcode,
  $registeredCapital: $registeredCapital,
  $addDaysReportWeight: $addDaysReportWeight,
  $taxpayerCode: $taxpayerCode,
  $addDaysReportTon: $addDaysReportTon,
  $addDaysReportCs: $addDaysReportCs,
  $ddGoodsAddress: $ddGoodsAddress,
  $ddSpfMc: $ddSpfMc,
  $ddNsrkhh: $ddNsrkhh,
  $ddHqhw: $ddHqhw,
  $ddNsrzh: $ddNsrzh,
  $ddNsrdz: $ddNsrdz,
  $ddKhmemo: $ddKhmemo,
  $ddLxrname: $ddLxrname,
  $ddFxxdz: $ddFxxdz,
  // $addDaysKellom: $addDaysKellom,
  $industryCode: $industryCode,
  $rulesOfTwbh: $rulesOfTwbh,
  $accountBank: $accountBank,
  $representative: $representative,
  $rulesOfdm: $rulesOfdm,
  $positiveInt: $positiveInt,
  $positiveNumber: $positiveNumber,
  $positiveNumberNoDot: $positiveNumberNoDot,
  $orgCode: $orgCode,
  $czcxmemo: $czcxmemo,
  $registeredZs: $registeredZs,
  $pzycfh: $pzycfh,
  $goodsUsername: $goodsUsername,
  $goodsQhlc: $goodsQhlc,
  $goodsQhaddr: $goodsQhaddr,
  $goodsHwjs: $goodsHwjs,
  $nonNegativeNumber: $nonNegativeNumber,
  $tbBusiYsxqFhdwdz: $tbBusiYsxqFhdwdz,
  $tbBusiYsxqShdwdz: $tbBusiYsxqShdwdz,
  $wlServerName: $wlServerName,
  $temperature: $temperature,
  $shxydm: $shxydm,
  $desmesisdn: $desmesisdn,
  $inputTextLength: $inputTextLength,
  $ldtel: $ldtel,
  $dunNumber: $dunNumber,
  $noZeroPositiveNumber: $noZeroPositiveNumber
};