JS 数据类型(type)判断总结
Posted 在奋斗的大道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 数据类型(type)判断总结相关的知识,希望对你有一定的参考价值。
1、判断是否为字符串(String)
isString = o => Object.prototype.toString.call(o).slice(8, -1) === 'String',
2、判断是否为数字(Number)
isNumber = o => Object.prototype.toString.call(o).slice(8, -1) === 'Number', //是否数字
3、判断是否为对象(Object)
isObj = o => Object.prototype.toString.call(o).slice(8, -1) === 'Object', //是否对象
4、判断是否为数组(Array)
isArray = o => Object.prototype.toString.call(o).slice(8, -1) === 'Array', //是否数组
5、判断是否为时间格式(Date)
isDate = o => Object.prototype.toString.call(o).slice(8, -1) === 'Date', //是否时间
6、判断是否为布尔类型(Boolean)
isBoolean = o => Object.prototype.toString.call(o).slice(8, -1) === 'Boolean', //是否boolean
7、判断是否为函数(function)
isFunction = o => Object.prototype.toString.call(o).slice(8, -1) === 'Function', //是否函数
8、判断是否为null
isNull = o => Object.prototype.toString.call(o).slice(8, -1) === 'Null', //是否为null
9、判断是否为未定义(underfined)
isUndefined = o => Ojbect.prototype.toString.call(o).slice(8, -1) === 'Undefined', //是否为undefined
10、判断是否为ios
isIos = () => { //是否ios
var u = navigator.userAgent
if(u.indexOf('android') > -1 || u.indexOf('Linux') > -1) { //安卓手机
return false
} else if (u.indexOf('iPhone') > -1) { //苹果手机
return true
} else if(u.indexOf('iPad') > -1) { //iPad
return false
} else if(u.indexOf('Windows Phone') > -1) { //winPhone手机
return false
} else {
return false
}
},
11、判断是否为PC
isPc = () => { //是否为pc端
var u = navigator.userAgent
var agents = ["Android", 'iPhone', 'SymbianOs', 'Windows Phone', 'iPad', 'iPod']
var flag = true
for(let v = 0; v < agents.length; v++) {
if(u.indexOf(agents[v]) > 0) {
flag = false
break
}
}
return flag
},
12、判断浏览器类型
browserType = () => { //浏览器类型
var userAgent = navigator.userAgent,
isOpera = userAgent.indexOf('Opera') > -1, //取得浏览器的userAgent字符串
isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1 && !isOpera,//判断是否ie浏览器
isEdge = userAgent.indexOf('Edge') > -1,//判断是否为IE的Edge浏览器
isFF = userAgent.indexOf('Firefox') > -1, //判断是否为Firefox浏览器
isSafari = userAgent.indexOf('Safari') > -1 && userAgent.indexOf("Chrome") == -1, //判断是否Safari浏览器
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以下"
}
if(isFF) return "FF"
if(isOpera) return "Opera"
if(isEdge) return "Edge"
if(isSafari) return "Safari"
if(isChrome) return "Chrome"
},
13、通用正则表达式(手机号码、邮箱、QQ、密码等)
checkStr = (str, type) => { //校验
switch(type) {
case 'phone': //手机号码
return /^1[3|4|5|7|8][0-9]{9}$/.test(str)
break
case 'tel': //座机
return /^(0\\d{2,3}-\\d{7,8})(-\\d{1,4})?$/.test(str)
break
case 'card': //身份证
return /^\\d{15}|\\d{18}$/.test(str)
break
case 'pwd': //密码以字母开头,只能包含字母、数字和下划线
return /^[a-zA-Z]\\w{5,17}$/.test(str)
break
case 'postal': //邮政编码
return /[1-9]\\d{5}(?!\\d)/.test(str)
break
case 'QQ': //QQ号
return /^[1-9][0-9]{4,9}$/.test(str)
break
case 'email': //邮箱
return /^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/.test(str)
break
case 'money': //金钱(小数点两位)
return /^\\d*(?:\\.\\d{0,2})?$/.test(str)
break
case 'URL': //网址
return /(http|ftp|https):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?/.test(str)
break
case 'IP': //IP
return /((?:(?:25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d)\\\\.){3}(?:25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d))/.test(str)
break
case 'date': //日期时间
return /^(\\d{4})\\-(\\d{2})\\-(\\d{2}) (\\d{2})(?:\\:\\d{2}|:(\\d{2}):(\\d{2}))$/.test(str) || /^(\\d{4})\\-(\\d{2})\\-(\\d{2})$/.test(str)
break
case 'number': //数字
return /^[0-9]$/.test(str)
break
case 'english': //英文
return /^[a-zA-Z]+$/.test(str)
break
case 'chinese': //中文
return /^[\\u4E00-\\u9FA5]+$/.test(str)
break
case 'lower': //小写
return /^[a-z]+$/.test(str)
break
case 'upper': //大写
return /^[A-Z]+$/.test(str)
break
case 'html': //HTML标记
return /<("[^"]*"|'[^']*'|[^'">])*>/.test(str)
break
default:
return true
}
以上是关于JS 数据类型(type)判断总结的主要内容,如果未能解决你的问题,请参考以下文章