No.1 取URL上的参数
/**
* 取URL上的参数
* @param {String} param 参数名
* @return {String}
*/
function getUrlParam (param) {
const result = window.location.href.match(new RegExp('(\\?|&)' + param + '(\\[\\])?=([^&#]*)'))
return result ? result[3] : undefined
}
No.2 动态插入 script to html
/**
* 动态插入 script to html
* @param url
* @param callback
*/
function createScript (url, callback) {
const oScript = document.createElement('script')
oScript.type = 'text/javascript'
oScript.async = true
oScript.src = url
/**
* IE6/7/8 -- onreadystatechange
* IE9/10 -- onreadystatechange, onload
* Firefox/Chrome/Opera -- onload
*/
const isIE = !-[1,] // eslint-disable-line
if (isIE) {
// 判断IE8及以下浏览器
oScript.onreadystatechange = function () {
if (this.readyState === 'loaded' || this.readyState === 'complete') {
callback && callback()
}
}
} else {
// IE9及以上浏览器,Firefox,Chrome,Opera
oScript.onload = function () {
callback && callback()
}
}
document.body.appendChild(oScript)
}
No.3 判断平台
/**
* 判断平台
* @return {String} 平台
*/
function detectOS () {
const ua = navigator.userAgent.toLowerCase()
if (/MicroMessenger/i.test(ua)) {
return 'weixin'
} else if (/iPhone|iPad|iPod|iOS/i.test(ua)) {
return 'ios'
} else if (/Android/i.test(ua)) {
return 'android'
} else {
return 'other'
}
}
No.4 判断是否为null或者undefined
function isNullData (data) {
if (data === '' || data === null || data === undefined || data === 'undefined') {
return true
} else {
return false
}
}
No.5 判断是否为数字
function isNumber (data) {
if (isNullData(data) || parseFloat(data).toString === 'NaN') {
return false
} else {
return true
}
}
No.6 将json对象转换成数组
/**
* @method 将json对象转换成数组
* @param {*json对象} data
*/
function jsonArrayTranform (data) {
let list = []
if (!isNullData(data)) {
if (Object.prototype.toString.call(data) === '[object Array]') {
list = data
} else {
list.push(data)
}
}
return list
}
No.7 获取当前日期时间,并格式化
/**
* @method 获取当前日期时间,并格式化
* @param fmt(如:YYYY-MM-dd hh:mm)
*/
function nowDateFormat (fmt) {
let date = new Date()
let 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 (let 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
}
No.8 比较两个日期大小
方法调用示例:this.DateDiff('2019-11-11','2019-11-12')
function DateDiff (sDate1, sDate2) {
var oDate1 = new Date(sDate1)
var oDate2 = new Date(sDate2)
if (oDate1.getTime() > oDate2.getTime()) {
return false
}
return true
}
No.9 计算俩日期间相差的天数
方法调用示例:this.DateDiff('2019-11-11','2019-11-12')
function DateDiff (sDate1, sDate2) {
var dateSpan, iDays
sDate1 = Date.parse(sDate1)
sDate2 = Date.parse(sDate2)
dateSpan = sDate2 - sDate1
dateSpan = Math.abs(dateSpan)
iDays = Math.floor(dateSpan / (24 * 3600 * 1000))
return (iDays + 1)
}
No.10 字符串日期转Date
let str = '2019-10-10'
str = str.replace(/-/g, '/')
let date = new Date(str)
谢谢观看~客官慢走~
网友评论