身份证校验
export const isCard = (card) => {
let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
return reg.test(card)
}
将base64转换为文件对象
export const dataURLtoFile = (type, dataurl, fileName) => {
const arr = `${type}${dataurl}`.split(",")
const mime = arr[0].match(/:(.*?);/)[1]
console.log(arr)
const bstr = atob(arr[1])
let n = bstr.length
const u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
let blob = new File([u8arr], fileName, {
type: mime,
})
return blob
}
手机号校验
export const checkPhone = (mobile) => {
var phone = /^((\+|00)86)?1\d{10}$/
return phone.test(mobile)
}
h5下载海报
export const convertImgToBase64 = (url, callback) => {
let canvas = document.createElement("CANVAS")
let ctx = canvas.getContext("2d")
let img = new Image()
img.crossOrigin = "Anonymous"
img.src = `${url}?time=${Date.now()}`
img.onload = function() {
canvas.height = img.height
canvas.width = img.width
ctx.drawImage(img, 0, 0)
var dataURL = canvas.toDataURL("image/png")
callback.call(this, dataURL)
canvas = null
}
}
export const h5DownImg = (url) => {
let arr = url.split("/")
let file_name = arr[arr.length - 1].split(".")[0]
convertImgToBase64(url, function(base64Img) {
const arr = base64Img.split(",")
const mime = arr[0].match(/:(.*?);/)[1]
const bstr = atob(arr[1])
let n = bstr.length
const u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
let blob = new File([u8arr], file_name, {
type: mime,
})
let downloadElement = document.createElement("a")
downloadElement.download = file_name
downloadElement.target = "_blank"
downloadElement.href = URL.createObjectURL(blob)
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement)
URL.revokeObjectURL(downloadElement.href)
})
}
输入框数字限制
export const setInputValue = (options) => {
console.log(options)
const defaultOPtions = {
max: Infinity,
min: -Infinity,
maxDecimals: Infinity,
}
options = Object.assign(defaultOPtions, options)
let { max, min, maxDecimals, value } = options
if (!value) return undefined
if (value > max) return parseFloat(max)
if (value < min) return parseFloat(min)
if (maxDecimals == Infinity) return parseFloat(value)
let arr = value.split(".")
if (arr[1] && arr[1].length > maxDecimals) {
return `${arr[0]}.${arr[1].substr(0, 2)}`
}
return value
}
文件对象转file
export const fileTobas64 = (file) => {
return new Promise((resolve, reject) => {
let reader = new FileReader()
let fileResult = ""
reader.readAsDataURL(file)
reader.onload = function () {
fileResult = reader.result
}
reader.onerror = function (error) {
reject(error)
}
reader.onloadend = function () {
resolve(fileResult)
}
})
}