js - 封装常用的公共方法

在这里插入图片描述

【获取当前时间的年月日 时分秒】

	function getTime() {
		var date = new Date();
		var year = date.getFullYear();
		var month = date.getMonth() + 1;
		var day = date.getDate()
		var hours = date.getHours(); //时
		var minutes = date.getMinutes(); //分
		var seconds = date.getSeconds(); //秒
		

		month = month < 10 ? '0' + month : month;
		day = day < 10 ? '0' + day : day
		hours = hours < 10 ? '0' + hours : hours
		minutes = minutes < 10 ? '0' + minutes : minutes
		seconds = seconds < 10 ? '0' + seconds : seconds

		return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds
	}
	getTime() //2021-04-22 09:46:53   

【获取当前时间之后(之前)的第n天时间】

	function getDays(num) {
		var date = new Date();
		date.setDate(date.getDate() + num) //当使用setDate()之后,date对象就发生了改变,所以之后getDate()就能获取到指定的日期
		let year = date.getFullYear() //年  
		let month = date.getMonth() + 1 //月
		let day = date.getDate(); //天数   
		if (month >= 1 && month <= 9) {
			month = `0${month}`
		}
		if (day >= 1 && day <= 9) {
			day = `0${day}`
		}
		return `${year}-${month}-${day}`
	}
	getDays(1);

【封装函数自动判断平年闰年和各月天数,返回当前月的天数】

	function getDaysOfEveryMonth(year, month) {
		var baseMonthsDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; //各月天数
		var thisYear = year; //今年
		var thisMonth = month; //本月
		var thisMonthDays; //这个月的天数变量存储
		//判断是闰年吗?闰年2月29天
		function isRunYear(fullYear) {
			return (fullYear % 4 == 0 && (fullYear % 100 != 0 || fullYear % 400 == 0));
		}

		if (isRunYear(thisYear) && thisMonth == 2) { //闰年2月29天
			thisMonthDays = baseMonthsDay[1] + 1
		} else {
			thisMonthDays = baseMonthsDay[thisMonth - 1];
		}
		return thisMonthDays;
	}
	getDaysOfEveryMonth(2021,4);	

【根据new Date()判断日期大小】

	function judgmentDate(m,n){
		var a = new Date(m);
		var b = new Date(n);
		if(a > b){
			console.log('大于');
		}else if(a < b){
			console.log("小于");
		}else{
			console.log("等于");
		}				
	}
	judgmentDate('2021-05-26 11:00:00','2021-06-12 12:12:12')	//小于

【获取url后边参数的参数值】

	function getParamsName(attr) {
		var url = 'baidu.com?name=冠军&age=18&province=山西' //location.href; 
		var params = url.split('?')[1];
		var paramsObj = {};
		if (params) {
			var paramsList = params.split('&') || [];
			for (var i = 0; i < paramsList.length; i++) {
				var item = paramsList[i].split('=') || [];
				paramsObj[item[0]] = item[1];
			}
		}
		return decodeURIComponent(paramsObj[attr]);
	}
	getParamsName('name') //冠军	

【数字千分位】

	function toFormat(num) {
		num = Number(num);
		return num.toLocaleString();
	}
	toFormat(138000); //138,000

【手机号验证】

	function isPhoneNumber(tel) {
		var reg = /^0?1[3|4|5|6|7|8|9][0-9]\d{8}$/;
		return reg.test(tel);
	}

【数组去重】

	//方法一:
	function uniq_one(arr) {
		return [...new Set(arr)]
	}
	uniq_one([1,2,3,1]) 	//[1,2,3]

	//方法二:
	function uniq_two(arr) {
		var uniq = [];
		for (var i = 0; i < arr.length; i++) {
			if (uniq.indexOf(arr[i]) == -1) {
				uniq.push(arr[i]);
			}
		}
		return uniq;
	}
	uniq_two([1,2,3,1]);	//[1,2,3]
	
	//方法三:
	function uniq_three(arr){
		var uniq = [];
		var obj = {};
		for(var i = 0; i < arr.length; i++){
			if(obj[arr[i]] == undefined){
				uniq.push(arr[i]);
				obj[arr[i]] = 1;
			}
		}
		return uniq;
	}
	uniq_three([1,2,3,1])	//[1,2,3]

【两个数组对比,去除相同元素,得到新数组】

	function getArrUnequal(arr1, arr2) {
		let list = arr2.filter(items => { //filter 它用于把Array的某些元素过滤掉,然后返回剩下的元素
			if (!arr1.includes(items))
				return items;
		})
		return list;
	}
	getArrUnequal(arr1, arr2);

【两个数组对比,取出相同元素,得到新数组】

	function getArrEqual(arr1, arr2) {
		let newArr = [];
		for (var i = 0; i < arr1.length; i++) {
			for (var j = 0; j < arr2.length; j++) {
				if (arr1[i] == arr2[j]) {
					newArr.push(arr1[i])
				}
			}
		}
		return newArr;
	}
	getArrEqual(arr1, arr2);

【数组中的最大值】

	const max = (arr) => { 
	    return Math.max.apply(null, arr);
	}
	max([1,2,3,0])	//3

【数组中的最小值】

	const min = (arr) => {
	    return Math.min.apply(null, arr);
	}
	min([1,2,3,0])	//0

【数组的平均值】

	const average = (arr) => {
		  return eval(arr.join("+")) / arr.length;
	}
	average([1,2,3,0])	//1.5

【是否为微信浏览器】

	const isWeiXin = () => {
	    return ua.match(/microMessenger/i) == 'micromessenger'
	}

【是否为移动端】

	const isDeviceMobile = () => {
	    return /android|webos|iphone|ipod|balckberry/i.test(ua)
	}

【是否为PC端】

	const isPC = () => {
		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;
	}

【是否为ios】

	const isIos = () => {
		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
		}
	}

【判断一个字符串中是否包含另一个字符串 】

	function hasStr(str1,str2){
		var info;
		if(str1.indexOf(str2) != -1){
			info = '包含';
		}else{
			info = '不包含';
		}
		return info;
	}
	hasStr("zhangsan","a")

【生成一个随机颜色,并返回rgb字符串值】

	//随机函数
	function randomNum(m, n) {
	  return Math.floor(Math.random() * (n - m + 1) + m);
	}
	
	function randomColor() {
		var r = randomNum(0, 255);
		var g = randomNum(0, 255);
		var b = randomNum(0, 255);
		return "rgb(" + r + "," + g + "," + b + ")";
	}

【字符串获取最后一个斜杠之后的内容】

	function getContent(str){
		let index = str.lastIndexOf("\/");
		let t = str.substring(index+1,str.length);
		return t;
	}
	getContent("/files/file/记录美好生活.doc")	//记录美好生活.doc
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值