JavaScript 前端type类型判断工具类

使用方法如下;
在这里插入图片描述

1、是否字符串

 isString = o => Object.prototype.toString.call(o).slice(8, -1) === 'String',

2、是否是数字

isNumber = o => Object.prototype.toString.call(o).slice(8, -1) === 'Number', //是否数字

3、是否对象

isObj = o => Object.prototype.toString.call(o).slice(8, -1) === 'Object', //是否对象

4、是否数组

isArray = o => Object.prototype.toString.call(o).slice(8, -1) === 'Array', //是否数组

5、是否时间

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、是否函数

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、是否为undefined

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、校验

	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
  		}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值