utils此文件下存放自己封装的工具类函数(数据校验类)

/**
 * 数据校验类
 */
/* eslint-disable */
// 判定是否为空
export const isEmpty = value => {
  if (typeof value == 'function') {
    return false;
  }

  return (
    typeof value == 'undefined' ||
    value === '' ||
    value === null ||
    value === undefined ||
    value === 'null' ||
    (value instanceof Object && Object.keys(value).length === 0)
  );
};

// 去除字符串空格
export const clearSpace = value => {
  if (isEmpty(value)) {
    return '';
  }
  return value.replace(/\s/g, '');
};

/**
 * 检测手机号码
 * 规则: 11位数字, 第一位和第二位必须为“13、14、15、16、17、18、19”
 */
// export const PhoneNumRegExp = /^1[3456789]\d{9}$/   原来
export const PhoneNumRegExp = /(^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$)|(^0{0,1}1[3|4|5|6|7|8|9][0-9]{9}$)/; // 客户要求变更
export const PhoneNumTip = '手机号输入有误,请核查~!';
export function isPhoneNum(str) {
  const reg = new RegExp(PhoneNumRegExp);
  return reg.test(str);
}

// 验证邮箱地址
export const emailReg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; // 客户要求变更
export const emailTip = '邮箱输入有误,请核查~!';
export function isEmail(value) {
  if (isEmpty(value)) {
    return false;
  }
  // const regExp = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/

  return emailReg.test(value);
}

/**
 * 身份证号校验
 */
export const cardNumReg = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X|x)$/;
export const cardNumTip = '证件号输入有误,请核查~!';
export function isIDCardNum(value) {
  if (isEmpty(value)) {
    return false;
  }
  if (value.length !== 18) {
    return false;
  }
  console.log('value', value);
  return cardNumReg.test(value);
}

/**
 * 身份证号判断男女 客户提供
 */
export function maleOrFemalByIdCard(idCard) {
  // idCard = trim(idCard.replace(/ /g, ""));//对身份证号码做处理。包括字符间有空格。

  if (idCard.length == 15) {
    if (idCard.substring(14, 15) % 2 == 0) {
      return '2';
    } else {
      return '1';
    }
  } else if (idCard.length == 18) {
    if (idCard.substring(14, 17) % 2 == 0) {
      return '2';
    } else {
      return '1';
    }
  } else {
    return null;
  }
}

/**
 * 护照校验 客户提供
 */
export const passportCardReg = /^[a-zA-Z0-9]{5,17}$/;
export const passportCardTip = '证件号输入有误,请核查~!';
export function isPassportCardNum(value) {
  if (isEmpty(value)) {
    return false;
  }
  return passportCardReg.test(value);
}

/**
 * 军官证 客户提供
 */
export const officerCardReg = /(^([\u4E00-\u9FA5\uF900-\uFA2D]{2,5})?\d{6,10}$)|(^\d{6,12}$)/;
export const officerCardTip = '证件号输入有误,请核查~!';
export function isOfficerCardNum(value) {
  if (isEmpty(value)) {
    return false;
  }
  return passportCardReg.test(value);
}

/**
 * 证件号码校验
 * 规则: 数字和字母
 */
export function isCardNum(value) {
  if (isEmpty(value)) {
    return false;
  }

  const regExp = new RegExp(/(^[A-Za-z0-9]+$)/);
  return regExp.test(value);
}

/**
 * 姓名校验
 * 规则: 汉字、字母、·和中间空格
 */
// 姓名:长度2-20可包含,空格,"·"(新疆姓名包含"·"),并校验其他特殊字符拦截  错误提示1:"姓名输入字数超限(字数范围:2-20字),请核查!"  错误提示2:"姓名不可包含特殊符号,请核查!"
export const nameRegExp1 = /^[\u4e00-\u9fa5•·' a-zA-Z\s]+$/;
export const nameRegExp = /^(?!.*?[\u3000-\u303F\u4DC0-\u4DFF\u2800-\u28FF\u3200-\u32FF\u3300-\u33FF\u2700-\u27BF\u2600-\u26FF\uFE10-\uFE1F\uFE30-\uFE4F])[\u4e00-\u9fbb\u2E80-\uFE4Fa-zA-Z•\-·' \s]+$/;
export const nameRegExp2 = /^[\u4e00-\u9fa5•·' a-zA-Z\s]{2,20}$/;
export const nameTip = '姓名不可包含特殊符号,请核查!';
export const nameTip2 = '姓名输入字数超限(字数范围:2-20字),请核查!';
export function isName(value) {
  //   const regExp = new RegExp(nameRegExp)
  return nameRegExp.test(value);
}

/**
 * 验证码校验
 * 规则: 6位数字
 */
export function isVerifyCode(value) {
  const regExp = new RegExp(/^\d{6}$/);
  return regExp.test(value);
}

/**
 * 密码校验
 * 规则: 8-16位字母、数字或符号组合,至少包含两种及以上
 * 客户要求: 密码长度8-16位且包含大小写字符加数字。特殊可包含字符包含("!","_")不强制必录特殊字符,和8-16位字母、数字或符号组合,至少包含两种及以上
 */
export function isSecretCode2(value) {
  const regExp = /(^[A-Za-z0-9!,_]+$)/;
  return regExp.test(value);
}
export function isSecretCode(value) {
  // const regExp = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![,\.#%'\+\*\-:;^_`]+$)[,\.#%'\+\*\-:;^_`0-9A-Za-z]{8,16}$/
  const regExp = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![,!_]+$)[,!_0-9A-Za-z]{8,16}$/;
  return regExp.test(value);
}

/**
 * 地址规则
 * 规则: 客户提供
 */
export function isAddress(obj) {
  var pattern = new RegExp(
    "[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'?]"
  );
  if (pattern.test(obj)) {
    return '地址信息不可包含特殊符号,请核查!';
  }
  return '';
}

// 10.报案描述及备注:长度10-200不可包含下述特殊字符:
// export const describeReg = /([`~!@#$^&*()=|{}':;',\\[\].<>/?~!@#¥……&*()——|{}【】‘;:”“'?])/
export const describeReg = /^[\u4e00-\u9fa5a-z0-9 。,.,+-“”]+$/gi; // 。,.,
export const describeTip = '描述信息不可包含特殊符号,请核查!';
export function isDescribe(obj) {
  var pattern = new RegExp(
    "[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'?]"
  );
  if (pattern.test(obj)) {
    return '描述信息不可包含特殊符号,请核查!';
  }
  return '';
}

/**
 * 金额规则
 * 规则: 2位消暑
 */
export const moneyReg = /^[1-9]{1}\d*(\.\d{1,2})?$/;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值