JavaScript type类型查询 class


	转换成小写:toLowerCase()
	转换成大写:toUpperCase()
	isString (o) { //是否字符串
	return Object.prototype.toString.call(o).slice(8, -1).toLowerCase() === 'String'
	}
	
	isNumber (o) { //是否数字
	return Object.prototype.toString.call(o).slice(8, -1) === 'Number'
	}
	
	isBoolean (o) { //是否boolean
	return Object.prototype.toString.call(o).slice(8, -1) === 'Boolean'
	}
	
	isFunction (o) { //是否函数
	return Object.prototype.toString.call(o).slice(8, -1) === 'Function'
	}
	
	isNull (o) { //是否为null
	return Object.prototype.toString.call(o).slice(8, -1) === 'Null'
	}
	
	isUndefined (o) { //是否undefined
	return Object.prototype.toString.call(o).slice(8, -1) === 'Undefined'
	}
	
	isObj (o) { //是否对象
	return Object.prototype.toString.call(o).slice(8, -1) === 'Object'
	}
	
	isArray (o) { //是否数组
	return Object.prototype.toString.call(o).slice(8, -1) === 'Array'
	}
	
	isDate (o) { //是否时间
	return Object.prototype.toString.call(o).slice(8, -1) === 'Date'
	}
	
	isRegExp (o) { //是否正则
	return Object.prototype.toString.call(o).slice(8, -1) === 'RegExp'
	}
	
	isError (o) { //是否错误对象
	return Object.prototype.toString.call(o).slice(8, -1) === 'Error'
	}
	
	isSymbol (o) { //是否Symbol函数
	return Object.prototype.toString.call(o).slice(8, -1) === 'Symbol'
	}
	
	isPromise (o) { //是否Promise对象
	return Object.prototype.toString.call(o).slice(8, -1) === 'Promise'
	}
	
	isSet (o) { //是否Set对象
	return Object.prototype.toString.call(o).slice(8, -1) === 'Set'
	}
	
	isFalse (o) {
	if (!o || o === 'null' || o === 'undefined' || o === 'false' || o === 'NaN') return true
	return false
	}
	
	isTrue (o) {
	return !this.isFalse(o)
	}
	
	isIos () {
		//检测机型
	var u = navigator.userAgent;
	if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {//安卓手机
	// return "Android";
	return false
	    } else if (u.indexOf('iPhone') > -1) {//苹果手机
	// return "iPhone";
	return true
	    } else if (u.indexOf('iPad') > -1) {//iPad
	// return "iPad";
	return false
	    } else if (u.indexOf('Windows Phone') > -1) {//winphone手机
	// return "Windows Phone";
	return false
	    }else{
	return false
	    }
	}
	
	isPC () { //是否为PC端
	var userAgentInfo = navigator.userAgent;
	var Agents = ["Android", "iPhone",
	"SymbianOS", "Windows Phone",
	"iPad", "iPod"];
	var flag = true;
	for (var v = 0; v < Agents.length; v++) {
	if (userAgentInfo.indexOf(Agents[v]) > 0) {
	            flag = false;
	break;
	        }
	    }
	return flag;
	}
	
	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 isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
	var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否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 return "IE7以下"//IE版本过低
	    }
	if (isIE11) return 'IE11';
	if (isEdge) return "Edge";
	if (isFF) return "FF";
	if (isOpera) return "Opera";
	if (isSafari) return "Safari";
	if (isChrome) return "Chrome";
	}
	
	checkStr (str, type) {
	switch (type) {
	case 'phone':   //手机号码
	return /^1[3|4|5|6|7|8|9][0-9]{9}$/.test(str);
	case 'tel':     //座机
	return /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str);
	case 'card':    //身份证
	return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(str);
	case 'pwd':     //密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线
	return /^[a-zA-Z]\w{5,17}$/.test(str)
	case 'postal':  //邮政编码
	return /[1-9]\d{5}(?!\d)/.test(str);
	case 'QQ':      //QQ号
	return /^[1-9][0-9]{4,9}$/.test(str);
	case 'email':   //邮箱
	return /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(str);
	case 'money':   //金额(小数点2位)
	return /^\d*(?:\.\d{0,2})?$/.test(str);
	case 'URL':     //网址
	return /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(str)
	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);
	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)
	case 'number':  //数字
	return /^[0-9]$/.test(str);
	case 'english': //英文
	return /^[a-zA-Z]+$/.test(str);
	case 'chinese': //中文
	return /^[\u4E00-\u9FA5]+$/.test(str);
	case 'lower':   //小写
	return /^[a-z]+$/.test(str);
	case 'upper':   //大写
	return /^[A-Z]+$/.test(str);
	case 'HTML':    //HTML标记
	return /<("[^"]*"|'[^']*'|[^'">])*>/.test(str);
	default:
	return true;
	    }
	
	// 严格的身份证校验
	    isCardID(sId) {
	if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(sId)) {
	            alert('你输入的身份证长度或格式错误')
	return false
	        }
	//身份证城市
	var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};
	if(!aCity[parseInt(sId.substr(0,2))]) {
	            alert('你的身份证地区非法')
	return false
	        }
	
	// 出生日期验证
	var sBirthday=(sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2))).replace(/-/g,"/"),
	            d = new Date(sBirthday)
	if(sBirthday != (d.getFullYear()+"/"+ (d.getMonth()+1) + "/" + d.getDate())) {
	            alert('身份证上的出生日期非法')
	return false
	        }
	
	// 身份证号码校验
	var sum = 0,
	            weights =  [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],
	            codes = "10X98765432"
	for (var i = 0; i < sId.length - 1; i++) {
	            sum += sId[i] * weights[i];
	        }
	var last = codes[sum % 11]; //计算出来的最后一位身份证号码
	if (sId[sId.length-1] != last) {
	            alert('你输入的身份证号非法')
	return false
	        }
	
	return true
	    }
	}
	
	
	es6数组方法:
	1、map方法;2、find方法;3、findIndex方法;
	4、filter方法;5、every方法;6、some方法;
	7、reduce方法;8、reduceRight方法;
	9、foreach方法;10、keys方法等等。
	//  数组的方法
	
	class type {
		inputVal(){
			
		}
		arrFor(arr=[],str,fn){
			//arr   数组  
			// str  要使用循环的方式  
			// fn   处理数组的callback
			return (arr||[])[str](fn)
		}
		isType (o,type) { //是否字符串
		//  o  要判断的参数
		//  str 类型
			return Object.prototype.toString.call(o).slice(8, -1).toLowerCase() === type
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值