记一些js常用小工具

//获取路由参数
export const getQueryString = (name: any) => {
  const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  const search = location.href.match(/\?(.*)/);
  if (search) {
    const r = search[1].match(reg);
    if (r != null) {
      return decodeURI(r[2]);
    }
  }
  return null;
};
// 身份证号校验
export const idValidation = (idCard: any) => {
  var regIdCard =
      /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$/,
    flag = true;

  if (!regIdCard.test(idCard)) {
    console.log("身份证号格式输入错误1", idCard);
    flag = false;
  } else {
    if (idCard.length == 18) {
      var idCardWi = new Array(
        7,
        9,
        10,
        5,
        8,
        4,
        2,
        1,
        6,
        3,
        7,
        9,
        10,
        5,
        8,
        4,
        2
      );
      var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2);
      var idCardWiSum = 0;
      for (var i = 0; i < 17; i++) {
        idCardWiSum += idCard.substring(i, i + 1) * idCardWi[i];
      }

      var idCardMod = idCardWiSum % 11;
      var idCardLast = idCard.substring(17);
      if (idCardMod == 2) {
        if (!(idCardLast == "X" || idCardLast == "x")) {
          console.log("身份证号输入错误2");
          flag = false;
        }
      } else {
        if (idCardLast != idCardY[idCardMod]) {
          console.log("身份证号输入错误3");
          flag = false;
        }
      }
    }
  }
  return flag;
};
//名字格式校验
export const nameValidation = (name: any) => {
  // var reg = /^([\u4E00-\u9FA5\uf900-\ufa2d·s]{2,20}|[a-zA-Z.s]{1,30})$/g,
  let reg = /(^[\u4e00-\u9fa5]{2,20}(·[\u4e00-\u9fa5]{2,20})*$)|(^([A-Za-z]\s*){1,30}$)/;
  let flag = true;
  name = name.trim()
  if (!reg.test(name) || /^(null|undefined)$/gi.test(name)) {
    console.log("名字格式不正确");
    flag = false;
  }
  return flag;
};
//手机号格式校验
export const nameValidation = (phoneNum: any) => {
  var reg = /^1[0-9]{10}$/,
    flag = true;
  if (!reg.test(phoneNum)) {
    console.log("手机号格式输入不正确!", phoneNum);
    flag = false;
  }
  return flag;
};
//根据身份证号获取用户基本信息(出生年月、性别、年龄)
export const IdCardGetInfo = (phoneNum: any) => {
  if (num == 1) {
    //获取出生日期
    birth =
      UUserCard.substring(6, 10) +
      "-" +
      UUserCard.substring(10, 12) +
      "-" +
      UUserCard.substring(12, 14);
    return birth;
  }
  if (num == 2) {
    //获取性别
    if (parseInt(UUserCard.substr(16, 1)) % 2 == 1) {
      return "男";
    } else {
      return "女";
    }
  }
  if (num == 3) {
    //获取年龄
    var myDate = new Date();
    var month = myDate.getMonth() + 1;
    var day = myDate.getDate();
    var age = myDate.getFullYear() - UUserCard.substring(6, 10) - 1;
    if (
      UUserCard.substring(10, 12) < month ||
      (UUserCard.substring(10, 12) == month &&
        UUserCard.substring(12, 14) <= day)
    ) {
      age++;
    }
    return age;
  }
};
// 身份证加密
export const IdCardGetInfo = (num: any,frontLen: any,endLen: any) => {
  var len = num.length - frontLen - endLen;
  var xing = "";
  for (var i = 0; i < len; i++) {
    xing += "*";
  }
  return (
    num.substring(0, frontLen) +
    xing +
    num.substring(num.length - endLen, num.length)
  );
};
// 将时间戳格式化年月日时分秒
export const getYMDHMS = (timestamp: any) => {
    const time = new Date(timestamp)
    const year = time.getFullYear()
    let month = time.getMonth() + 1
    let date = time.getDate()
    let hours = time.getHours()
    let minute = time.getMinutes()
    let second = time.getSeconds()

    if (month < 10) { month = '0' + month }
    if (date < 10) { date = '0' + date }
    if (hours < 10) { hours = '0' + hours }
    if (minute < 10) { minute = '0' + minute }
    if (second < 10) { second = '0' + second }
    return year + '-' + month + '-' + date + ' ' + hours + ':' + minute + ':' + second
},
//复制文本
export const copy = (text: string) => {
  // 在调用前先访问是否存在clipboard对象,是否禁止isSecureContext,非微信环境(微信禁止)
  if (navigator.clipboard && isSecureContext && !navigator.userAgent.toLowerCase().match(/micromessenger/i)?.includes('micromessenger')) {
    return navigator.clipboard.writeText(text)
  } else {
    // 不存在使用 老版本API execCommand
    try {
      let aux = document.createElement('input');
      aux.setAttribute('value', text);
      document.body.appendChild(aux);
      aux.select();
      document.execCommand('copy');
      document.body.removeChild(aux);
      return Promise.resolve()
    } catch (e) {
      return Promise.reject(e)
    }
  }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值