123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524 |
- /**
- *
- * 将单个字符串的首字母大写
- */
- export function fistLetterUpper(str) {
- return str.charAt(0).toUpperCase() + str.slice(1)
- }
- //将秒转化为时分秒
- export function formateSeconds(endTime){
- let secondTime = parseInt(endTime)//将传入的秒的值转化为Number
- let min = 0// 初始化分
- let h =0// 初始化小时
- let result=''
- if(secondTime>60){//如果秒数大于60,将秒数转换成整数
- min=parseInt(secondTime/60)//获取分钟,除以60取整数,得到整数分钟
- secondTime=parseInt(secondTime%60)//获取秒数,秒数取佘,得到整数秒数
- if(min>60){//如果分钟大于60,将分钟转换成小时
- h=parseInt(min/60)//获取小时,获取分钟除以60,得到整数小时
- min=parseInt(min%60) //获取小时后取佘的分,获取分钟除以60取佘的分
- }
- }
- result=`${h.toString().padStart(2,'0')}:${min.toString().padStart(2,'0')}:${secondTime.toString().padStart(2,'0')}`
- return result
- }
- /**
- *
- * 时分秒
- */
- export function SecondToDate(msd) {
- var time =msd
- if (null != time && "" != time) {
- if (time > 60 && time < 60 * 60) {
- time = parseInt(time / 60.0) + ":" + parseInt((parseFloat(time / 60.0) -
- parseInt(time / 60.0)) * 60);
- }
- else if (time >= 60 * 60 && time < 60 * 60 * 24) {
- time = parseInt(time / 3600.0) + ":" + parseInt((parseFloat(time / 3600.0) -
- parseInt(time / 3600.0)) * 60) + ":" +
- parseInt((parseFloat((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60) -
- parseInt((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60)) * 60);
- } else if (time >= 60 * 60 * 24) {
- time = parseInt(time / 3600.0/24) + ":" +parseInt((parseFloat(time / 3600.0/24)-
- parseInt(time / 3600.0/24))*24) + ":" + parseInt((parseFloat(time / 3600.0) -
- parseInt(time / 3600.0)) * 60) + ":" +
- parseInt((parseFloat((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60) -
- parseInt((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60)) * 60);
- }
- else {
- time = parseInt(time);
- }
- }
- return time;
- }
- function compareVersion(v1, v2) {
- v1 = v1.split('.')
- v2 = v2.split('.')
- const len = Math.max(v1.length, v2.length)
- while (v1.length < len) {
- v1.push('0')
- }
- while (v2.length < len) {
- v2.push('0')
- }
- for (let i = 0; i < len; i++) {
- const num1 = parseInt(v1[i])
- const num2 = parseInt(v2[i])
- if (num1 > num2) {
- return 1
- } else if (num1 < num2) {
- return -1
- }
- }
- return 0
- }
- /**
- *
- * @desccrition: 对String类型去除空格的拓展
- * @dir : 被去除空格所在的位置
- * @test: ie6-9 chrome firefox
- */
- export function trim(str, dir) {
- switch (dir) {
- case 0: // 去左边的空格
- return str.replace(/(^\s*)/g, '')
- case 1: // 去右边的空格
- return str.replace(/(\s*$)/g, '')
- case 2: // 去掉所有的空格
- return str.replace(/(\s*)/g, '')
- default:
- // 去掉两边的空格
- return str.replace(/(^\s*)|(\s*$)/g, '')
- }
- }
- /**
- * 判断是否字符串
- * @param->o : 传入的参数,参数可以为任何类型。
- * @return: true表示为字符串,false为非字符串
- */
- export function isString(o) {
- // 是否字符串
- return Object.prototype.toString.call(o).slice(8, -1) === 'String'
- }
- /**
- *
- * @descrition : 该函数的功能是判断转入的参数是否为数字类型。
- * @param->o : 传入的参数,参数可以为任何类型。
- * @return: true表示为数字,false为非数字
- *
- */
- export function isNumber(o) {
- // 是否数字
- return Object.prototype.toString.call(o).slice(8, -1) === 'Number'
- }
- export function isObject(o) {
- // 是否对象
- return Object.prototype.toString.call(o).slice(8, -1) === 'Object'
- }
- export function isArray(o) {
- // 是否数组
- return Object.prototype.toString.call(o).slice(8, -1) === 'Array'
- }
- export function isDate(o) {
- // 是否时间
- return Object.prototype.toString.call(o).slice(8, -1) === 'Date'
- }
- export function isBoolean(o) {
- // 是否boolean
- return Object.prototype.toString.call(o).slice(8, -1) === 'Boolean'
- }
- export function isFunction(o) {
- // 是否函数
- return Object.prototype.toString.call(o).slice(8, -1) === 'Function'
- }
- export function isNull(o) {
- // 是否为null
- return Object.prototype.toString.call(o).slice(8, -1) === 'Null'
- }
- export function isUndefined(o) {
- // 是否undefined
- return Object.prototype.toString.call(o).slice(8, -1) === 'Undefined'
- }
- export function isFalse(o) {
- if (
- o === '' ||
- o === undefined ||
- o === null ||
- o === 'null' ||
- o === 'undefined' ||
- o === 0 ||
- o === false ||
- isNaN(o)
- ) {
- return true
- }
- return false
- }
- export function isTrue(o) {
- if (
- o === '' ||
- o === undefined ||
- o === null ||
- o === 'null' ||
- o === 'undefined' ||
- o === 0 ||
- o === false ||
- isNaN(o)
- ) {
- return false
- }
- return true
- }
- export function browserType() {
- var userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
- var isOpera = userAgent.indexOf('Opera') > -1 // 判断是否Opera浏览器
- var isIE =
- userAgent.indexOf('compatible') > -1 &&
- userAgent.indexOf('MSIE') > -1 &&
- !isOpera // 判断是否IE浏览器
- var isEdge = userAgent.indexOf('Edge') > -1 // 判断是否IE的Edge浏览器
- var isFF = userAgent.indexOf('Firefox') > -1 // 判断是否Firefox浏览器
- var isSafari =
- userAgent.indexOf('Safari') > -1 && userAgent.indexOf('Chrome') === -1 // 判断是否Safari浏览器
- var isChrome =
- userAgent.indexOf('Chrome') > -1 && userAgent.indexOf('Safari') > -1 // 判断Chrome浏览器
- if (isIE) {
- var reIE = new RegExp('MSIE (\\d+\\.\\d+);')
- reIE.test(userAgent)
- var fIEVersion = parseFloat(RegExp['$1'])
- if (fIEVersion === 7) return 'IE7'
- else if (fIEVersion === 8) return 'IE8'
- else if (fIEVersion === 9) return 'IE9'
- else if (fIEVersion === 10) return 'IE10'
- else if (fIEVersion === 11) return 'IE11'
- else return 'IE7以下' // IE版本过低
- }
- if (isFF) return 'FF'
- if (isOpera) return 'Opera'
- if (isEdge) return 'Edge'
- if (isSafari) return 'Safari'
- if (isChrome) return 'Chrome'
- }
- export function typeOf(obj) {
- const toString = Object.prototype.toString
- const map = {
- '[object Boolean]': 'boolean',
- '[object Number]': 'number',
- '[object String]': 'string',
- '[object Function]': 'function',
- '[object Array]': 'array',
- '[object Date]': 'date',
- '[object RegExp]': 'regExp',
- '[object Undefined]': 'undefined',
- '[object Null]': 'null',
- '[object Object]': 'object'
- }
- return map[toString.call(obj)]
- }
- /**
- * 数组去重的方法
- * @param {*} arr 执行去重的数据
- * @returns {array} 返回去重结束的数组
- */
- export function arrayUnique(someArray) {
- let tempArray = someArray.slice(0) // 复制数组到临时数组
- for (var i = 0; i < tempArray.length; i++) {
- for (var j = i + 1; j < tempArray.length;) {
- if (tempArray[j] === tempArray[i]) {
- // 后面的元素若和待比较的相同,则删除并计数;
- // 删除后,后面的元素会自动提前,所以指针j不移动
- tempArray.splice(j, 1)
- } else {
- j++
- } // 不同,则指针移动
- }
- }
- return tempArray
- }
- /**
- * 小于10补0
- * @param {*} n
- */
- export function formatDigit(n) {
- return n.toString().replace(/^(\d)$/, '0$1')
- }
- /**
- * 千分位显示,常用于价格的显示
- * @param {*} num
- */
- export function toThousands(num) {
- return parseFloat(num)
- .toFixed(2)
- .replace(/(\d{1,3})(?=(\d{3})+(?:\.))/g, '$1,')
- }
- /**
- * 浮点数的加法
- * @param {*} arg1
- * @param {*} arg2
- */
- export function floatAdd(arg1, arg2) {
- var r1, r2, m
- try {
- r1 = arg1.toString().split('.')[1].length
- } catch (e) {
- r1 = 0
- }
- try {
- r2 = arg2.toString().split('.')[1].length
- } catch (e) {
- r2 = 0
- }
- m = Math.pow(10, Math.max(r1, r2))
- return (parseFloat(arg1) * m + parseFloat(arg2) * m) / m
- }
- /**
- * 浮点数的乘法
- * @param {*} arg1
- * @param {*} arg2
- */
- export function floatMul(arg1, arg2) {
- var m = 0
- var s1 = arg1.toString()
- var s2 = arg2.toString()
- try {
- m += s1.split('.')[1].length
- } catch (e) {}
- try {
- m += s2.split('.')[1].length
- } catch (e) {}
- return (
- (Number(s1.replace('.', '')) * Number(s2.replace('.', ''))) /
- Math.pow(10, m)
- )
- }
- /*
- * 银行卡每四位空格
- */
- export function formatCardNo(cardNo) {
- cardNo += ''
- return cardNo
- .replace(/\s/g, '')
- .replace(/[^\d]/g, '')
- .replace(/(\d{4})(?=\d)/g, '$1 ')
- }
- /**
- * 时间戳转为格式化时间字符串
- * @param {date} timestamp [时间戳]
- * @param {string} formats [时间格式] 1. Y-M-D/2. Y-M-D h:m:s/3. Y年M月D日/4. Y年M月D日 h时m分/5. Y年M月D日 h时m分s秒
- */
- export function formatDate(timestamp, formats) {
- /*
- formats格式包括
- 1. Y-M-D
- 2. Y-M-D h:m:s
- 3. Y年M月D日
- 4. Y年M月D日 h时m分
- 5. Y年M月D日 h时m分s秒
- 示例:console.log(formatDate(1500305226034, 'Y年M月D日 h:m:s')) ==> 2017年07月17日 23:27:06
- */
- formats = formats || 'Y-M-D'
- var myDate = timestamp ? new Date(timestamp) : new Date()
- var year = myDate.getFullYear()
- var month = formatDigit(myDate.getMonth() + 1)
- var day = formatDigit(myDate.getDate())
- var hour = formatDigit(myDate.getHours())
- var minute = formatDigit(myDate.getMinutes())
- var second = formatDigit(myDate.getSeconds())
- var ddd = {
- Y: year,
- M: month,
- D: day,
- h: hour,
- m: minute,
- s: second
- }
- return formats.replace(/Y|M|D|h|m|s/g, function(matches) {
- return ddd[matches]
- })
- // 小于10补0
- function formatDigit(n) {
- return n.toString().replace(/^(\d)$/, '0$1')
- }
- }
- /*
- * obj 转 params字符串参数
- * 例子:{a:1,b:2} => a=1&b=2
- */
- export function objParseParam(obj) {
- let paramsStr = ''
- if (obj instanceof Array) return paramsStr
- if (!(obj instanceof Object)) return paramsStr
- for (let key in obj) {
- paramsStr += `${key}=${obj[key]}&`
- }
- return paramsStr.substring(0, paramsStr.length - 1)
- }
- /*
- * obj 转 路由地址带参数
- * 例子:{a:1,b:2} => /pages/index/index?a=1&b=2
- */
- export function objParseUrlAndParam(path, obj) {
- let url = path || '/'
- let paramsStr = ''
- if (obj instanceof Array) return url
- if (!(obj instanceof Object)) return url
- if (obj instanceof Array) {
- paramsStr = ''
- }
- if (!(obj instanceof Object)) {
- paramsStr = ''
- }
- for (let key in obj) {
- paramsStr += `${key}=${obj[key]}&`
- paramsStr = paramsStr.substring(0, paramsStr.length - 1)
- }
- if (paramsStr) {
- if (url.indexOf('?') === -1) {
- url = `${url}?${paramsStr}`
- } else {
- url = url.replace('?', `?${paramsStr}&`)
- }
- }
- return url
- }
- /*
- * 获取url字符串参数
- */
- export function getRequestParameters(locationhref) {
- let href = locationhref || ''
- let theRequest = new Object()
- let str = href.split('?')[1]
- if (str != undefined) {
- let strs = str.split('&')
- for (let i = 0; i < strs.length; i++) {
- theRequest[strs[i].split('=')[0]] = strs[i].split('=')[1]
- }
- }
- return theRequest
- }
- /**
- * 获取应用使用平台标识
- */
- export function getPlatformType() {
- // #ifdef APP-PLUS
- return 'app'
- // #endif
- // #ifdef MP-WEIXIN
- return 'wxapp'
- // #endif
- // #ifdef H5
- return 'h5'
- // #endif
- return 'h5'
- }
- /**
- * 获取区分h5平台的具体环境
- */
- export function getPlatform() {
- let user_platform = getPlatformType()
- if (user_platform == 'h5') {
- let ua = navigator.userAgent.toLowerCase()
- let isWeixin = ua.indexOf('micromessenger') != -1
- if (isWeixin) {
- user_platform = 'wx'
- }
- }
- return user_platform
- }
- export default {
- // 将单个字符串的首字母大写
- fistLetterUpper,
- //将秒转化为时分秒
- formateSeconds,
- // 时分秒
- SecondToDate,
- // 该函数的功能是判断转入的参数是否为数字类型。
- isNumber,
- // 该函数的功能是判断转入的参数是否为字符串类型。
- isString,
- // 该函数的功能是判断转入的参数是否为对象类型。
- isObject,
- // 该函数的功能是判断转入的参数是否为数组类型。
- isArray,
- // 该函数的功能是判断转入的参数是否为日期类型。
- isDate,
- // 该函数的功能是判断转入的参数是否为布尔类型。
- isBoolean,
- // 该函数的功能是判断转入的参数是否为函数类型。
- isFunction,
- // 该函数的功能是判断转入的参数是否为null类型。
- isNull,
- // 该函数的功能是判断转入的参数是否为underfined类型。
- isUndefined,
- // 该函数的功能是判断转入的参数是否为false。(0,false,undefined,null,'', ' ', NaN)都属于false
- isFalse,
- // 该函数的功能是判断转入的参数是否为true。
- isTrue,
- // 去除空格 type = 默认去除左右空格 0 左边空格 1 右边空格 2 所有空格
- trim,
- // 判断浏览器类型
- browserType,
- // 判断类型
- typeOf,
- // 数组去重
- arrayUnique,
- // 变成两位小数
- toThousands,
- // 浮点数的加法
- floatAdd,
- // 浮点数的乘法
- floatMul,
- // 时间戳转为格式化时间字符串
- formatDate,
- // 小于10补0
- formatDigit,
- // 银行卡每4位空格
- formatCardNo,
- // {a:1,b:2} => a=1&b=2
- objParseParam,
- // ('/pages/index/index', {a:1,b:2}) => /pages/index/index?a=1&b=2
- objParseUrlAndParam,
- // 获取url字符串参数
- getRequestParameters,
- // 获取应用使用平台标识
- getPlatformType,
- // 获取区分h5平台的具体环境
- getPlatform,
- compareVersion
- }
|