1
PC-20250623MANY\Administrator
2025-09-16 58af838e57447ce1e5d47b038c45f0df0eda23ba
src/utils/utils.js
@@ -1,100 +1,150 @@
const moment = require("moment-timezone");
// 设置时区为印度标准时间
moment.tz.setDefault("Asia/Kolkata");
// 单位用千位分隔符显示
export function thousandBitSeparator (str) {
  var num = parseFloat(str).toFixed(3) // 这里因为我需要两位小数所以做一个限制,你们看情况做小数位的限制
  var s = num.substring(0, (num.length - 1)) // 只取小数位2位
  return s && s.toString().replace(/(\d)(?=(\d{3})+\.)/g, function ($0, $1) {
    return $1 + ','
  })
export function thousandBitSeparator(str) {
  var num = parseFloat(str).toFixed(3); // 这里因为我需要两位小数所以做一个限制,你们看情况做小数位的限制
  var s = num.substring(0, num.length - 1); // 只取小数位2位
  return (
    s &&
    s.toString().replace(/(\d)(?=(\d{3})+\.)/g, function($0, $1) {
      return $1 + ",";
    })
  );
}
// 判断是不是空 是--true
export function isNull (str) {
  if (str === '' || str === null) {
    return true
export function isNull(str) {
  if (str === "" || str === null) {
    return true;
  } else {
    return false
    return false;
  }
}
export function debounce(fn, delay) {
  // 时间期限
  var delay = delay || 200;
  var timer;
  // 闭包
  return function() {
    // 考虑作用域,上下文环境,apply需要用到this对象
    var th = this;
    // 接收的参数用 ES6 中的 rest 参数统一存储到变量 args 中。arguments就是传入的参数数组,而且个数可以不确定的传回给fn(不确定函数到底有多少个参数,用arguments来接收)
    var args = arguments;
    // 判断还在定时,说明当前正在一个计时过程中,并且又触发了相同事件。所以要取消当前的计时,重新开始计时
    if (timer) {
      clearTimeout(timer);
    }
    timer = setTimeout(function() {
      timer = null;
      // 执行方法
      fn.apply(th, args);
    }, delay);
  };
}
// 判断是不是邮箱 是--true
export function isEmail (str) {
  let myreg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/
  return myreg.test(str)
export function isEmail(str) {
  let myreg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/;
  return myreg.test(str);
}
// 只能中英文
export function isName (str) {
  let myreg = /^[\u4E00-\u9FA5A-Za-z]+$/
  return myreg.test(str)
// 只能中文
export function isName(str) {
  let myreg = /^[\u4E00-\u9FA5]+$/;
  return myreg.test(str);
}
// 手机号码
export function isPhone (mobile) {
export function isPhone(mobile) {
  // let myreg = /^[1][3,4,5,7,8][0-9]{9}$/  //手机号码验证
  let myreg = /^[0-9]{11}$/ // 手机号码验证
  return myreg.test(mobile)
  let myreg = /^[0-9]{11}$/; // 手机号码验证
  return myreg.test(mobile);
}
// 密码 校验
export function pwdReg(psd) {
  let value = psd.replace(/\s*/g, "");
  let myreg = /^[a-zA-Z0-9!@#$%^&*.]{6,12}$/; // 手机号码验证
  return myreg.test(value);
}
// 身份证校验
export function idCardReg(idcard) {
  var myreg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  return myreg.test(idcard);
}
// 银行卡校验
export function bankNoReg(val) {
  var myreg = /^([1-9]{1})(\d{14,18})$/;
  return myreg.test(val);
}
// 数字隐藏显示 *
export function hideNumberTo (str) {
  let number = str.toFixed(2)
  let arr = number.split('.')
  console.log(arr)
  let string = ''
export function hideNumberTo(str) {
  let number = str.toFixed(2);
  let arr = number.split(".");
  let string = "";
  for (var i = 0; i < arr[0].length; i++) {
    string += '*'
    string += "*";
  }
  return string + '.**'
  return string + ".**";
}
// 时间戳转换为时间格式
export function timeFormat (val) {
  let fmt = 'yyyy-MM-dd hh:mm:ss'
  // let date = new Date(time)
  if (!val) {
    return
export function timeFormat(date) {
  return moment(date).format("DD-MM-YYYY hh:mm:ss A");
}
function padLeftZero(str) {
  return ("00" + str).substr(str.length);
}
// cookie 操作
export function setCookie(name, value, day) {
  if (day !== 0) {
    // 当设置的时间等于0时,不设置expires属性,cookie在浏览器关闭后删除
    var curDate = new Date();
    var curTamp = curDate.getTime();
    var curWeeHours = new Date(curDate.toLocaleDateString()).getTime() - 1;
    var passedTamp = curTamp - curWeeHours;
    var leftTamp = 24 * 60 * 60 * 1000 - passedTamp;
    var leftTime = new Date();
    leftTime.setTime(leftTamp + curTamp);
    document.cookie =
      name + "=" + escape(value) + ";expires=" + leftTime.toGMTString();
  } else {
    document.cookie = name + "=" + escape(value);
  }
  let date = new Date(val)
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
}
// get
export function getCookie(name) {
  var arr;
  var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  arr = document.cookie.match(reg);
  if (arr) {
    return unescape(arr[2]);
  } else {
    return null;
  }
  let o = {
    'M+': date.getMonth() + 1,
    'd+': date.getDate(),
    'h+': date.getHours(),
    'm+': date.getMinutes(),
    's+': date.getSeconds()
  }
  for (let k in o) {
    if (new RegExp(`(${k})`).test(fmt)) {
      let str = o[k] + ''
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str))
  // document.cookie = name + "=" + escape(value);
}
export function clearCookie() {
  this.setCookie("USER_TOKEN", "", -1);
}
//
export function checkCookie() {
  var user = this.getCookie("USER_TOKEN");
  if (user !== "") {
    alert("Welcome again " + user);
  } else {
    user = prompt("Please enter your name:", "");
    if (user !== "" && user != null) {
      this.setCookie("USER_TOKEN", user, 365);
    }
  }
  return fmt
}
function padLeftZero (str) {
  return ('00' + str).substr(str.length)
}
export function formatDate(date, fmt) {
  if (/(y+)/.test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  }
  let o = {
      'M+': date.getMonth() + 1,
      'd+': date.getDate(),
      'h+': date.getHours(),
      'm+': date.getMinutes(),
      's+': date.getSeconds()
  };
  for (let k in o) {
      if (new RegExp(`(${k})`).test(fmt)) {
      let str = o[k] + '';
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
      }
  }
  return fmt;
};