vue常用的公共方法

1、纯数字校验

export const checkIsNumber = value => {
  const numberReg = /^[0-9]*$/;
  return numberReg.test(value);
}

2、手机号校验正则

	export const isPhoneNum = num => {
	  const reg = /^1[345678]\d{9}$/;
	  return reg.test(num);
	}

3、验证身份证号(15位或18位数字):

	export const isUserId = value => {
	  const numberReg = /^\d{15}|\d{}18$/;
	  return numberReg.test(value);
	}

4、密码安全登记校验

export const pswIsAllow = psw =>{
  const pswLeve = [{
      reg: /\d+/
    },
    {
      reg: /[a-z]+/
    },
    {
      reg: /[A-Z]+/
    },
    {
      reg: /[~!@#\$%^&*\(\)\{\};,.\?\/'"]/
    }
  ];
  if(psw.indexOf(' ')!=-1){
    return false;
  }
  let level = 0;
  for (var j = pswLeve.length - 1; j >= 0; j--) {
      if (pswLeve[j].reg.test(psw)) {
          level += 1;
      }
  }
  return level;
}

5、检测设备

export const IsPC = () => {
  let userAgentInfo = navigator.userAgent;
  let Agents = [
    "Android",
    "iPhone",
    "SymbianOS",
    "Windows Phone",
    "iPad",
    "iPod"
  ];
  let flag = true; //true 代表PC false代表移动端
  for (var v = 0; v < Agents.length; v++) {
    if (userAgentInfo.indexOf(Agents[v]) != -1) {
      flag = false;
      break;
    }
  }
  return flag;
};

6、获取url后的参数

export const urlParams = () => {
  const fullUrl = location.href;
  const url = fullUrl.substr(fullUrl.indexOf("?")); //获取url中"?"符后的字串
  const theRequest = new Object();
  if (url.indexOf("?") != -1) {
    const str = url.substr(1);
    const strs = str.split("&");
    for (var i = 0; i < strs.length; i++) {
      theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
    }
  }
  return theRequest;
};

7、* 时间戳格式化

 * @param time 需要转化的时间戳
 * @param split 以特定符号分割
 */
 export const formatTime = (time, split) => {
  let date = new Date(time - 0);
  let s = split;
  if (!s) {
    s = '-'
  }
  let year = date.getFullYear(),
    month = date.getMonth() + 1, //月份是从0开始的
    day = date.getDate(),
    hour = date.getHours(),
    min = date.getMinutes(),
    sec = date.getSeconds();
  let newTime =
    year +
    s +
    (month < 10 ? "0" + month : month) +
    s +
    (day < 10 ? "0" + day : day) +
    " " +
    (hour < 10 ? "0" + hour : hour) +
    ":" +
    (min < 10 ? "0" + min : min) +
    ":" +
    (sec < 10 ? "0" + sec : sec);

  return newTime;
}

8、倒计时(默认开始时间为当前时间)

 * 倒计时(默认开始时间为当前时间)
 * @param endTime 结束时间
 * @returns 时间对象
 */
const getEndTime = (startTime, endTime) => {
  const startDate = startTime || new Date(); //开始时间,当前时间
  const endDate = new Date(endTime); //结束时间,需传入时间参数
  const t = endDate.getTime() - startDate.getTime(); //时间差的毫秒数
  let d = 0,
    h = 0,
    m = 0,
    s = 0;
  if (t >= 0) {
    d = Math.floor(t / 1000 / 3600 / 24) > 10 ? Math.floor(t / 1000 / 3600 / 24) : '0' + Math.floor(t / 1000 / 3600 / 24);
    h = Math.floor(t / 1000 / 60 / 60 % 24) > 10 ? Math.floor(t / 1000 / 60 / 60 % 24) > 10 : '0' + Math.floor(t / 1000 / 60 / 60 % 24) > 10;
    m = Math.floor(t / 1000 / 60 % 60) > 10 ? Math.floor(t / 1000 / 60 % 60) : '0' + Math.floor(t / 1000 / 60 % 60);
    s = Math.floor(t / 1000 % 60) > 10 ? Math.floor(t / 1000 % 60) : '0' + Math.floor(t / 1000 % 60);
  }
  return {
    day: d,
    hour: h,
    minute: m,
    second: s
  }
}

猜你喜欢

转载自blog.csdn.net/weixin_43787528/article/details/89238091