js 日常使用正则整理

日常开发中,在做一些字符串验证的时候,避免不了和正则打交道,下面做一个日常使用的正则整理

验证电子邮箱格式

function isEmail(value: string) {
  return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(
    value
  );
}

验证手机格式

function isMobile(value: string) {
  return /^1[23456789]\d{9}$/.test(value);
}

验证 URL 格式

function isUrl(value: string) {
  return /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/.test(value);
}

验证日期格式

function isDate(value: string) {
  return return !/Invalid|NaN/.test(new Date(value).toString());
}

验证 ISO 类型的日期格式

function isDateISO(value: string) {
  return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(
    value
  );
}

验证十进制数字

function isNumber(value: string) {
  return /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
}

验证整数

function isDigits(value: string) {
  return /^\d+$/.test(value);
}

是否有空格

function isSpaces(value: string) {
  return /\s+/g.test(value);
}

验证身份证号码

function isIdCard(value: string) {
  return /^[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)$/.test(
    value
  );
}

统一社会信用代码

function isUSCC(value: string) {
  return /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/;.test(
    value
  );
}

金额,只允许 2 位小数

function isAmount(value: string) {
  //金额,只允许保留两位小数
  return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value);
}

中文

function isChinese(value: string) {
  let reg = /^[\u4e00-\u9fa5]+$/gi;
  return reg.test(value);
}

字母

function isLetter(value: string) {
  return /^[a-zA-Z]*$/.test(value);
}

字母或者数字

function isEnOrNum(value: string) {
  //英文或者数字
  let reg = /^[0-9a-zA-Z]*$/g;
  return reg.test(value);
}

字母或者数字、下划线

function isEnOrNumOrLine(value: string) {
  //英文或者数字
  let reg = /^\w+$/;
  return reg.test(value);
}

固定电话

function isLandline(value: string) {
  let reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/;
  return reg.test(value);
}

是否短信验证码

function isCode(value: string, len = 6) {
  return new RegExp(`^\\d{${len}}$`).test(value);
}

车辆牌照 (普通校验格式)

function isCarCode(value: string, len = 6) {
  let reg = /^[\u4E00-\u9FA5][\da-zA-Z]{6}$/;
  return reg.test(value);
}

车辆识别码

function isCarNumber(value: string, len = 6) {
  let reg = /^(?!(?:\d+|[a-zA-Z]+)$)[\da-zA-Z]{17}$/;
  return reg.test(value);
}

Url 是否有参数

function isUrlParam(value: string) {
  let reg = /[?&][^?&]+=[^?&]+/g;
  return reg.test(value);
}

邮政编码

function isPostalCode(value: string) {
  let reg =
    /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/;
  return reg.test(value);
}

32 位 MD5 格式

function isMd5(value: string) {
  let reg = /^([a-f\d]{32}|[A-F\d]{32})$/;
  return reg.test(value);
}

uuid

function isUUID(value: string) {
  let reg = /^[a-f\d]{4}(?:[a-f\d]{4}-){4}[a-f\d]{12}$/i;
  return reg.test(value);
}

base64

function isBase64(value: string) {
  let reg =
    /^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i;
  return reg.test(value);
}

js 判断是否为空

function isEmpty(value: any) {
  switch (typeof value) {
    case "undefined":
      return true;
    case "string":
      if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, "").length == 0)
        return true;
      break;
    case "boolean":
      if (!value) return true;
      break;
    case "number":
      if (0 === value || isNaN(value)) return true;
      break;
    case "object":
      if (null === value || value.length === 0) return true;
      for (var i in value) {
        return false;
      }
      return true;
  }
  return false;
}

是否 json 字符串

function isJsonString(value: string) {
  if (typeof value == "string") {
    try {
      var obj = JSON.parse(value);
      if (typeof obj == "object" && obj) {
        return true;
      } else {
        return false;
      }
    } catch (e) {
      return false;
    }
  }
  return false;
}

有疑问的同学可以私信我、对帮助到同学欢迎大家点赞、收藏评论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值