此篇文章仅作为方便项目或实际使用中复用而记录
格式化时间
export function parseTime(time, cFormat) {
if (arguments.length === 0) {
return null
}
const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
let date
if (typeof time === 'object') {
date = time
} else {
if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
time = parseInt(time)
}
if (typeof time === 'number' && time.toString().length === 10) {
time = time * 1000
}
date = new Date(time)
}
if (!date) return '-'
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay()
}
const timeStr = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key]
if (key === 'a') {
return ['日', '一', '二', '三', '四', '五', '六'][value]
}
if (result.length > 0 && value < 10) {
value = '0' + value
}
return value || 0
})
return timeStr
}
格式化url查询参数
export function getQueryParameters(url) {
const search = url.split('?')[1]
if (!search) {
return {}
}
return JSON.parse(
'{"' +
decodeURIComponent(search)
.replace(/"/g, '\\"')
.replace(/\?/g, '","')
.replace(/&/g, '","')
.replace(/=/g, '":"')
.replace(/\+/g, ' ') +
'"}'
)
}
删除url查询参数
export function removeQueryParameters(str, name) {
var reg = new RegExp(name + '=([^&]*)(&?)', 'i')
var r = str.match(reg)
if (r != null) {
str = str.replace(reg, '')
}
return str
}
根据宽、高(或百分比),获取弹出框的x、 y 、w 、h
export function getOffsetAndSize(W = 0.6, H = 0.8) {
const clientWidth = document.body.clientWidth
const clientHeight = document.body.clientHeight
const dialogW = W <= 1 ? parseInt(clientWidth * W) : W
const dialogH = H <= 1 ? parseInt(clientHeight * H) : H
const left = parseInt((clientWidth - dialogW) / 2)
const top = parseInt((clientHeight - dialogH) / 2)
return [left, top, dialogW, dialogH]
}
将度分秒转为经纬度
export const Dms2D = dmsData => {
if (!dmsData.includes('°') || !dmsData.includes('′') || !dmsData.includes('″')) return 0
const d = parseFloat(dmsData.split('°')[0])
const m = parseFloat(dmsData.split('°')[1].split('′')[0])
const s = parseFloat(dmsData.split('′')[1].replace('″', ''))
return d + m / 60 + s / 60 / 60
}
将度分秒转为经纬度
export const Dms2D2 = (d, m, s) => {
return d + m / 60 + s / 60 / 60
}
手机号验证
isvalidPhone(str) {
const reg = /^1[3|4|5|7|8][0-9]\d{8}$/
return reg.test(str)
},
验证用户名 用户名要求 数字、字母、下划线的组合,其中数字和字母必须同时存在*
isvalidUsername(str) {
const reg = /^(?![^A-Za-z]+$)(?![^0-9]+$)[0-9A-Za-z_]{4,15}$/
return reg.test(str)
},
验证密码 密码,以字母开头,长度在8~18之间,只能包含字母、数字和下划线
isvalidPass(str) {
const reg = /^(?:\d+|[a-zA-Z]){3,18}$/
return reg.test(str)
}