unils

2020-05-06  本文已影响0人  Eden0204
/**
 * 是否是数字
 * @param {any} n
 */
export const validateNumber = (n: any) =>
  !isNaN(parseFloat(n)) && isFinite(n) && Number(n) === n

/**
 * 保留两位小数、千分位格式化,格式:12,345.67
 * @param {string|number} amount
 * @returns {string}
 */
export const formatAmount = (amount: any) => {
  if (!validateNumber(+amount)) {
    return amount
  }
  return (+amount).toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,')
}



/**
 * 获取Url参数中指定name的值
 * @param name 参数名称
 * @returns {string}
 */
export const getURLParam = (name: string) => {
  const re = new RegExp('(^|&)' + name + '=([^&#]*)(&|$)')
  let value = ''
  const arrHash = window.location.hash.split('?')
  const arrSearch = window.location.search.substr(1).split('?')
  arrHash.shift()
  const arr = arrSearch.concat(arrHash)

  for (let i = 0; i < arr.length; i++) {
    const r = arr[i].match(re)
    if (r !== null && r[2]) {
      value = r[2]
      break
    }
  }
  return value
}

//延时函数
export const sleep = function(delay: number) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      try {
        resolve(1)
      } catch (e) {
        reject(0)
      }
    }, delay)
  })
}
/**
 * rem 换算 px
 * @param rem 设计稿rem值
 * @returns {number} px值
 */
export const rem2px = (rem: any) => {
  const rootFontSize = parseFloat(
    window.document.documentElement.style.fontSize
  )
  return parseFloat(rem) * rootFontSize
}

上一篇 下一篇

猜你喜欢

热点阅读