获取数据类型
function getDataType ( value) {
return Object. prototype. toString. call ( value) . slice ( 8 , - 1 )
}
getDataType ( ( ) => { } )
getDataType ( [ 1 , 2 ] )
getDataType ( { id: 1 , name: '1' } )
getDataType ( 1 )
getDataType ( '1' )
判断数据是不是Object类型的数据
function isObject ( value) {
return Object. prototype. toString. call ( value) === '[object Object]'
}
isObject ( { id: 1 , name: '1' } )
isObject ( 1 )
判断数据是不是数组类型的数据
function isArray ( value) {
return Object. prototype. toString. call ( value) === '[object Array]'
}
isObject ( { id: 1 , name: '1' } )
isObject ( 1 )
Array. isArray = Array. isArray || isArray;
判断数据是不是正则对象
function isRegExp ( value) {
return Object. prototype. toString. call ( value) === '[object RegExp]'
}
isRegExp ( /[\u4e00-\u9fa5]/gm )
isRegExp ( 1 )
判断数据是不是时间对象
function isDate ( value) {
return Object. prototype. toString. call ( value) === '[object Date]'
}
isDate ( new Date ( ) )
isDate ( 1 )
判断 value 是不是函数
function isFunction ( value) {
return Object. prototype. toString. call ( value) === '[object Function]'
}
isFunction ( ( ) => { } )
isFunction ( 1 )
下划线转驼峰
function toHump ( name) {
return name. replace ( /_(\w)/g , function ( _, letter) {
return letter. toUpperCase ( ) ;
} ) ;
}
toHump ( 'first_name' )
驼峰转下划线
function toLine ( name) {
return name. replace ( /([A-Z])/g , "_$1" ) . toLowerCase ( ) ;
}
toLine ( 'firstName' )
字符串首位大写
function capitalize ( str) {
return str. charAt ( 0 ) . toUpperCase ( ) + str. slice ( 1 )
}
capitalize ( 'firstName' )
识别各种浏览器及平台
let inBrowser = typeof window !== 'undefined' ;
let inWeex = typeof WXEnvironment !== 'undefined' && ! ! WXEnvironment. platform;
let weexPlatform = inWeex && WXEnvironment. platform. toLowerCase ( ) ;
let UA = inBrowser && window. navigator. userAgent. toLowerCase ( ) ;
let isIE = UA && /msie|trident/ . test ( UA ) ;
let isIE9 = UA && UA . indexOf ( 'msie 9.0' ) > 0 ;
let isEdge = UA && UA . indexOf ( 'edge/' ) > 0 ;
let isAndroid = ( UA && UA . indexOf ( 'android' ) > 0 ) || ( weexPlatform === 'android' ) ;
let isIOS = ( UA && /iphone|ipad|ipod|ios/ . test ( UA ) ) || ( weexPlatform === 'ios' ) ;
let isChrome = UA && / chrome/ d+ / . test ( UA ) && ! isEdge;
获取浏览器信息
function getExplorerInfo ( ) {
let t = navigator. userAgent. toLowerCase ( ) ;
return 0 <= t. indexOf ( "msie" ) ? {
type: "IE" ,
version: Number ( t. match ( /msie ([d]+)/ ) [ 1 ] )
} : ! ! t. match ( /trident/ . + ? rv: ( ( [ d. ] + ) ) / ) ? {
type: "IE" ,
version: 11
} : 0 <= t. indexOf ( "edge" ) ? {
type: "Edge" ,
version: Number ( t. match ( / edge/ ( [ d] + ) / ) [ 1 ] )
} : 0 <= t. indexOf ( "firefox" ) ? {
type: "Firefox" ,
version: Number ( t. match ( / firefox/ ( [ d] + ) / ) [ 1 ] )
} : 0 <= t. indexOf ( "chrome" ) ? {
type: "Chrome" ,
version: Number ( t. match ( / chrome/ ( [ d] + ) / ) [ 1 ] )
} : 0 <= t. indexOf ( "opera" ) ? {
type: "Opera" ,
version: Number ( t. match ( /opera.([d]+)/ ) [ 1 ] )
} : 0 <= t. indexOf ( "Safari" ) ? {
type: "Safari" ,
version: Number ( t. match ( / version/ ( [ d] + ) / ) [ 1 ] )
} : {
type: t,
version: - 1
}
}
检测是否为PC端浏览器模式
function isPCBroswer ( ) {
let e = navigator. userAgent. toLowerCase ( )
, t = "ipad" == e. match ( /ipad/i )
, i = "iphone" == e. match ( /iphone/i )
, r = "midp" == e. match ( /midp/i )
, n = "rv:1.2.3.4" == e. match ( /rv:1.2.3.4/i )
, a = "ucweb" == e. match ( /ucweb/i )
, o = "android" == e. match ( /android/i )
, s = "windows ce" == e. match ( /windows ce/i )
, l = "windows mobile" == e. match ( /windows mobile/i ) ;
return ! ( t || i || r || n || a || o || s || l)
}
获取Url参数,返回一个对象
function getUrlParam ( url) {
let arrObj = url. split ( "?" ) ;
let params = Object. create ( null )
if ( arrObj. length > 1 ) {
arrObj = arrObj[ 1 ] . split ( "&" ) ;
arrObj. forEach ( item=> {
item = item. split ( "=" ) ;
params[ item[ 0 ] ] = item[ 1 ]
} )
}
return params;
}
getUrlParam ( 'http://192.168.0.1:8080?id=1&name=2' )
全屏
function toFullScreen ( ) {
let elem = document. body;
elem. webkitRequestFullScreen
? elem. webkitRequestFullScreen ( )
: elem. mozRequestFullScreen
? elem. mozRequestFullScreen ( )
: elem. msRequestFullscreen
? elem. msRequestFullscreen ( )
: elem. requestFullScreen
? elem. requestFullScreen ( )
: alert ( "浏览器不支持全屏" ) ;
}
退出全屏
function exitFullscreen ( ) {
let elem = parent. document;
elem. webkitCancelFullScreen
? elem. webkitCancelFullScreen ( )
: elem. mozCancelFullScreen
? elem. mozCancelFullScreen ( )
: elem. cancelFullScreen
? elem. cancelFullScreen ( )
: elem. msExitFullscreen
? elem. msExitFullscreen ( )
: elem. exitFullscreen
? elem. exitFullscreen ( )
: alert ( "切换失败,可尝试Esc退出" ) ;
}
禁止某些键盘事件
document. addEventListener ( 'keydown' , function ( event) {
return ! (
112 == event. keyCode ||
123 == event. keyCode ||
event. ctrlKey && 82 == event. keyCode ||
event. ctrlKey && 78 == event. keyCode ||
event. shiftKey && 121 == event. keyCode ||
event. altKey && 115 == event. keyCode ||
"A" == event. srcElement. tagName && event. shiftKey
) || ( event. returnValue = false )
} ) ;
禁止右键、选择、复制
[ 'contextmenu' , 'selectstart' , 'copy' ] . forEach ( function ( ev) {
document. addEventListener ( ev, function ( event) {
return event. returnValue = false
} )
} ) ;