216 lines
5.5 KiB
JavaScript
216 lines
5.5 KiB
JavaScript
// 验证手机号码
|
||
export function validatePhoneNumber(data) {
|
||
var reg = /^1[3-9]\d{9}$/
|
||
return reg.test(data)
|
||
}
|
||
|
||
export function lastfour(num) {
|
||
// 截取后4位
|
||
let lastFourDigits = num.slice(-4);
|
||
return lastFourDigits
|
||
}
|
||
|
||
export function isValidBankCard(cardNumber) {
|
||
const reg = /^(\d{16}|\d{19})$/
|
||
// 使用正则表达式测试银行卡号
|
||
return reg.test(cardNumber)
|
||
}
|
||
|
||
export function formatTime(time) {
|
||
if (typeof time !== 'number' || time < 0) {
|
||
return time
|
||
}
|
||
|
||
var hour = parseInt(time / 3600)
|
||
time = time % 3600
|
||
var minute = parseInt(time / 60)
|
||
time = time % 60
|
||
var second = time
|
||
|
||
return ([hour, minute, second]).map(function(n) {
|
||
n = n.toString()
|
||
return n[1] ? n : '0' + n
|
||
}).join(':')
|
||
}
|
||
|
||
export function formatDateTime(date, fmt = 'yyyy-MM-dd hh:mm:ss') {
|
||
if (!date) {
|
||
return ''
|
||
}
|
||
if (typeof(date) === 'number') {
|
||
date = new Date(date)
|
||
}
|
||
var o = {
|
||
"M+": date.getMonth() + 1, //月份
|
||
"d+": date.getDate(), //日
|
||
"h+": date.getHours(), //小时
|
||
"m+": date.getMinutes(), //分
|
||
"s+": date.getSeconds(), //秒
|
||
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
|
||
"S": date.getMilliseconds() //毫秒
|
||
}
|
||
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length))
|
||
for (var k in o)
|
||
if (new RegExp("(" + k + ")").test(fmt))
|
||
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)))
|
||
return fmt
|
||
}
|
||
|
||
export function timestampToDate(timestamp) {
|
||
let date = new Date(timestamp);
|
||
let year = date.getFullYear();
|
||
let month = ("0" + (date.getMonth() + 1)).slice(-2);
|
||
let day = ("0" + date.getDate()).slice(-2);
|
||
|
||
return `${year}-${month}-${day}`;
|
||
}
|
||
|
||
export function formatLocation(longitude, latitude) {
|
||
if (typeof longitude === 'string' && typeof latitude === 'string') {
|
||
longitude = parseFloat(longitude)
|
||
latitude = parseFloat(latitude)
|
||
}
|
||
|
||
longitude = longitude.toFixed(2)
|
||
latitude = latitude.toFixed(2)
|
||
|
||
return {
|
||
longitude: longitude.toString().split('.'),
|
||
latitude: latitude.toString().split('.')
|
||
}
|
||
}
|
||
|
||
var dateUtils = {
|
||
UNITS: {
|
||
'年': 31557600000,
|
||
'月': 2629800000,
|
||
'天': 86400000,
|
||
'小时': 3600000,
|
||
'分钟': 60000,
|
||
'秒': 1000
|
||
},
|
||
humanize: function(milliseconds) {
|
||
var humanize = '';
|
||
for (var key in this.UNITS) {
|
||
if (milliseconds >= this.UNITS[key]) {
|
||
humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前';
|
||
break;
|
||
}
|
||
}
|
||
return humanize || '刚刚';
|
||
},
|
||
format: function(dateStr) {
|
||
var date = this.parse(dateStr)
|
||
var diff = Date.now() - date.getTime();
|
||
if (diff < this.UNITS['天']) {
|
||
return this.humanize(diff);
|
||
}
|
||
var _format = function(number) {
|
||
return (number < 10 ? ('0' + number) : number);
|
||
};
|
||
return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDate()) + '-' +
|
||
_format(date.getHours()) + ':' + _format(date.getMinutes());
|
||
},
|
||
parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串,转化为一个Date对象
|
||
var a = str.split(/[^0-9]/);
|
||
return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
|
||
}
|
||
};
|
||
|
||
// 返回上一页
|
||
export function prePage(page = null) {
|
||
let pages = getCurrentPages();
|
||
//console.log('pages:',pages);
|
||
let prePage = pages[pages.length - 2];
|
||
if (page !== null) {
|
||
prePage = pages[page];
|
||
}
|
||
// #ifdef H5
|
||
//return prePage;
|
||
// #endif
|
||
return prePage;
|
||
}
|
||
|
||
export function kmUnit(m) {
|
||
var v;
|
||
if (typeof m === 'number' && !isNaN(m)) {
|
||
if (m >= 1000) {
|
||
v = (m / 1000).toFixed(2) + 'km'
|
||
} else {
|
||
v = m + 'm'
|
||
}
|
||
} else {
|
||
v = '0m'
|
||
}
|
||
return v;
|
||
}
|
||
|
||
export function isWeixin() {
|
||
if (navigator && navigator.userAgent && navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1) {
|
||
return true
|
||
}
|
||
return false
|
||
}
|
||
|
||
export function parseQuery() {
|
||
let res = {}
|
||
|
||
// #ifdef H5
|
||
const query = (location.href.split('?')[1] || '').trim().replace(/^(\?|#|&)/, '')
|
||
|
||
if (!query) {
|
||
return res
|
||
}
|
||
|
||
query.split('&').forEach(param => {
|
||
const parts = param.replace(/\+/g, ' ').split('=')
|
||
const key = decodeURIComponent(parts.shift())
|
||
const val = parts.length > 0 ? decodeURIComponent(parts.join('=')) : null
|
||
|
||
if (res[key] === undefined) {
|
||
res[key] = val
|
||
} else if (Array.isArray(res[key])) {
|
||
res[key].push(val)
|
||
} else {
|
||
res[key] = [res[key], val]
|
||
}
|
||
})
|
||
// #endif
|
||
// #ifndef H5
|
||
var pages = getCurrentPages() //获取加载的页面
|
||
var currentPage = pages[pages.length - 1] //获取当前页面的对象
|
||
var url = currentPage.route //当前页面url
|
||
res = currentPage.options //如果要获取url中所带的参数可以查看options
|
||
// #endif
|
||
|
||
return res
|
||
}
|
||
|
||
|
||
export function urlDecode(query) {
|
||
if (!query) return null
|
||
let hash, object = {}
|
||
const hashes = query.slice(query.indexOf('?') + 1).split('&')
|
||
for (let i = 0; i < hashes.length; i++) {
|
||
hash = hashes[i].split('=')
|
||
object[hash[0]] = hash[1]
|
||
}
|
||
|
||
return object;
|
||
}
|
||
|
||
//根据名称返回是图片还是pdf
|
||
export function getFileType(filename) {
|
||
const lowercaseFilename = filename.toLowerCase();
|
||
|
||
if (lowercaseFilename.endsWith('.jpg') || lowercaseFilename.endsWith('.jpeg') || lowercaseFilename.endsWith(
|
||
'.png') || lowercaseFilename.endsWith('.gif')) {
|
||
return 'image';
|
||
} else if (lowercaseFilename.endsWith('.pdf')) {
|
||
return 'pdf';
|
||
} else if (lowercaseFilename.endsWith('.xls') || lowercaseFilename.endsWith('.xlsx')) {
|
||
return 'excel';
|
||
} else {
|
||
return 'other';
|
||
}
|
||
} |