提取URL中的某个查询字符串的值
getParams ( ) {
let url = localtion. search;
var param = { } ;
if ( url. indexOf ( '?' ) != - 1 ) {
let query = url. slice ( url. indexOf ( '?' ) ) . slice ( 1 ) ;
let strs = query. split ( '&' ) ;
for ( var i = 0 ; i < strs. length; i++ ) {
param[ strs[ i] . split ( '=' ) [ 0 ] ] = strs[ i] . split ( '=' ) [ 1 ] ;
}
}
return param;
}
getQueryString ( name) {
var reg = new RegExp ( '(^|&)' + name + '=([^&]*)(&|$)' , 'i' ) ;
var r = window. location. search. substr ( 1 ) . match ( reg) ;
if ( r != null ) {
return unescape ( r[ 2 ] ) ;
}
return '' ;
}
将一个对象序列化
convertObjtoStr ( obj) {
let str = '' ;
for ( const key in obj) {
str = str + key + '=' + obj[ key] + '&' ;
}
str = str. substring ( 0 , str. length - 1 ) ;
return str;
}
去除移动端的滚动条
. container : : - webkit- scrollbar { display: none; - webkit- overflow- scrolling: touch; scroll- behavior: none; }
: : - webkit- scrollbar- button { background: transparent; }
: : - webkit- scrollbar- track { background: transparent; }
: : - webkit- scrollbar- track- piece { background: transparent; }
: : - webkit- scrollbar- thumb { background: transparent; } : : - webkit- scrollbar- corner { background: transparent; }
: : - webkit- resizer { background: transparent; }
: : - webkit- scrollbar { background- color: transparent; height: 0 ; }
函数节流
throttle ( fn, interval) {
var timer;
return function ( ) {
var args = arguments;
var _this = this ;
if ( timer) {
return false ;
}
timer = setTimeout ( function ( ) {
clearTimeout ( timer) ;
timer = null ;
fn. call ( _this, args) ;
} , interval) ;
} ;
} ,
获取cookie
getCookie ( name) {
var arr,
reg = new RegExp ( '(^| )' + name + '=([^;]*)(;|$)' ) ;
if ( ( arr = document. cookie. match ( reg) ) ) {
return unescape ( arr[ 2 ] ) ;
} else {
return null ;
}
} ,
获取平台
getPlatform ( ) {
if ( navigator. userAgent. toLowerCase ( ) . indexOf ( 'iphone' ) > - 1 || navigator. userAgent. toLowerCase ( ) . indexOf ( 'ipad' ) > - 1 ) {
return 'iphone' ;
} else if ( navigator. userAgent. toLowerCase ( ) . indexOf ( 'android' ) > - 1 ) {
return 'aphone' ;
}
return 'other' ;
}
隐藏身份证号 11 位
formatIdentity ( number) {
number += '' ;
return number. replace ( /(\d{3})\d*(\d{4})/g , '$1***********$2' )
} ,
隐藏手机号中间4位
formatPhone ( phone) {
phone += '' ;
return phone. replace ( /(\d{3})\d*(\d{4})/g , '$1***$2' )
} ,
对后台传来的时间戳格式化,如果后台是10位的乘以1000即可
formateDate ( time) {
if ( ! time) return '' ;
let date = new Date ( time) ;
return date. getFullYear ( ) + '-' + ( date. getMonth ( ) + 1 ) + '-' + date. getDate ( ) + ' ' + date. getHours ( ) + ':' + date. getMinutes ( ) + ':' + date. getSeconds ( ) ;
}
两数组相比,留下不同的项
unique ( longArr, arr = [ ] ) {
return longArr. filter ( function ( item) {
return ! arr. some ( i => i == item) ;
} ) ;
}
let longArr = [ 5 , 6 , 7 , 8 , 9 , 10 ] , arr= [ 5 , 6 , 7 ] ;
unique ( longArr, arr)
几秒内点击几次触发某事
var count = 0 ;
$ ( '#btn' ) . click ( fn) ;
function fn ( ) {
var timeStart = parseInt ( new Date ( ) . getTime ( ) / 1000 ) ;
count++ ;
console. log ( count) ;
if ( count == 5 && ( parseInt ( new Date ( ) . getTime ( ) / 1000 ) - timeStart) <= 2 ) {
console. log ( count, timeStart) ;
} else if ( count > 5 || ( new Date ( ) . getSeconds ( ) - timeStart) > 2 ) {
console. log ( '事件不触发' ) ;
return false ;
}
}
获取移动端网络状态
getNetStatus ( ) {
const UA = navigator. userAgent;
if ( UA . indexOf ( 'nettype/' ) > - 1 ) {
var netType = UA . match ( /nettype\/[a-z0-9]*/g ) [ 0 ] . split ( 'nettype/' ) [ 1 ] ;
if ( netType == 'wifi' ) {
return 'wifi' ;
} else if ( netType == '4g' || netType == 'lte' || netType == '3g+' || netType == 'ctlte' ) {
return '4g' ;
} else if ( netType == '3g' || netType == 'nonwifi' || netType == '3gwap' || netType == '3gnet' ) {
return '3g' ;
} else if ( netType == '2g' || netType == 'uninet' || netType == 'uniwap' || netType == 'cmwap' || netType == 'cmnet' || netType == 'ctwap' || netType == 'ctnet' ) {
return '2g' ;
}
}
return 'unknown' ;
}
将一组数字字符串 分割为 4位一组
export const groupBy4= ( str = "" ) => str. match ( /(\d{1,4})/g ) ;
将类似于 “2020-01-01 00:00:00” 格式的字符串转为 20200101000000
export const councatDataformat = str => {
return str. replace ( /\-|\:|\s/g , "" ) ;
} ;
获得两时间戳相减的天数
export const getDays = ( date1: any = "" , date2: any = "" ) => {
let datetime: number = date2 - date1;
let days = ( ( datetime / 1000 ) * 60 * 60 * 24 ) / ( 1000 * 60 * 60 * 24 ) ;
return days;
} ;
获得当前时间的时间YYYYMMDDhhmmss格式
export const getNowYYYYMMDDhhmmss = ( ) => {
let pad2 = n => {
return n < 10 ? "0" + n : n;
} ;
let date = new Date ( ) ;
return (
date. getFullYear ( ) . toString ( ) +
pad2 ( date. getMonth ( ) + 1 ) +
pad2 ( date. getDate ( ) ) +
pad2 ( date. getHours ( ) ) +
pad2 ( date. getMinutes ( ) ) +
pad2 ( date. getSeconds ( ) )
) ;
} ;