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)
謝謝觀看~客官慢走~