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
}