封装一些常用的js函数

2022-07-01 08:53 JavaScript 57 梁俊威

在WEB开发中,使用JS的频率是相当高的,因此我们会封装一些常用的函数,小编给大家整理了一部分,废话不多说,直接上码。

Tips:文章末尾有JS文件包。

// 打开全屏
function fullScreen() {
	elem = document.body;
	if (elem.webkitRequestFullScreen) {
		elem.webkitRequestFullScreen();
	} else if (elem.mozRequestFullScreen) {
		elem.mozRequestFullScreen();
	} else if (elem.requestFullScreen) {
		elem.requestFullscreen();
	} else {
		//浏览器不支持全屏API或已被禁用  
	}
}

// 关闭全屏
function exitFullScreen() {
	var elem = document;
	if (elem.webkitCancelFullScreen) {
		elem.webkitCancelFullScreen();
	} else if (elem.mozCancelFullScreen) {
		elem.mozCancelFullScreen();
	} else if (elem.cancelFullScreen) {
		elem.cancelFullScreen();
	} else if (elem.exitFullscreen) {
		elem.exitFullscreen();
	} else {
		//浏览器不支持全屏API或已被禁用  
	}
}

// 生成随机字符串
function randomString(e) {
	e = e || 32;
	var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",
		a = t.length,
		n = "";
	for (i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a));
	return n
}

// 生成N-N的随机数
function getRandomNum(min, max) {
	var Range = max - min;
	var Rand = Math.random();
	return (min + Math.round(Rand * Range));
}

// 设置cookie
function setCookie(name, value, expires_in = 0) {
	var d = new Date();
	d.setTime(d.getTime() + expires_in); // 设置cookie到期时间
	var expires = "expires=" + d.toGMTString();
	if (expires_in) {
		document.cookie = name + "=" + value + "; " + expires * 1000;
	} else {
		document.cookie = name + "=" + value + ";";
	}
}

// 获取cookie
function getCookie(cname) {
	const name = cname + "=";
	var res = document.cookie.split(';');
	for (var i = 0; i < res.length; i++) {
		var data = res[i].trim();
		if (data.indexOf(name) == 0) {
			return data.substring(name.length, data.length);
		}
	}
	return null;
}

// 删除cookie
function clearCookie(name) {
	setCookie(name, "", -1);
}

// 邮箱验证
function isEmail(str) {
	var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
	return reg.test(str);
}

// 手机号码验证
function isMobilePhone(phone) {
	var reg = /^1\d{10}$/;
	if (reg.test(phone)) {
		alert('ok');
	} else {
		alert('error');
	}
}

// 数组验证
function isArray(arr) {
	return Object.prototype.toString.call(arr) === '[object Array]';
}

// 按ascii码从小到大排序
function sortAscii(obj) {
	let arr = new Array();
	let num = 0;
	for (let i in obj) {
		arr[num] = i;
		num++;
	}
	let sortArr = arr.sort();
	//let sortObj = {};    //完成排序值
	let str = ''; //自定义排序字符串
	for (let i in sortArr) {
		str += sortArr[i] + '=' + obj[sortArr[i]] + '&';
		//sortObj[sortArr[i]] = obj[sortArr[i]];
	}
	//去除两侧字符串
	let char = '&'
	str = str.replace(new RegExp('^\\' + char + '+|\\' + char + '+$', 'g'), '');

	return str;
}

// 获取url参数
function getPathParam(name) {
	const query = window.location.search.substring(1);
	const vars = query.split("&");
	for (let i = 0; i < vars.length; i++) {
		const pair = vars[i].split("=");
		if (pair[0] === name) {
			return pair[1];
		}
	}
	return false;
}

// 输入一个值,返回其数据类型
function getType(para) {
	return Object.prototype.toString.call(para)
}

// 去重
function unique(arr) {
	var obj = {};
	return arr.filter(ele => {
		if (!obj[ele]) {
			obj[ele] = true;
			return true;
		}
	})
}

// 判断元素有没有子元素
function hasChildren(e) {
	var children = e.childNodes,
		len = children.length;
	for (var i = 0; i < len; i++) {
		if (children[i].nodeType === 1) {
			return true;
		}
	}
	return false;
}

// 返回当前的时间(年月日时分秒)
function getDateTime() {
	var date = new Date(),
		year = date.getFullYear(),
		month = date.getMonth() + 1,
		day = date.getDate(),
		hour = date.getHours() + 1,
		minute = date.getMinutes(),
		second = date.getSeconds();
	month = checkTime(month);
	day = checkTime(day);
	hour = checkTime(hour);
	minute = checkTime(minute);
	second = checkTime(second);

	function checkTime(i) {
		if (i < 10) {
			i = "0" + i;
		}
		return i;
	}
	return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒";
}

// 获得视口的尺寸
function getViewportOffset() {
	if (window.innerWidth) {
		return {
			width: window.innerWidth,
			height: window.innerHeight
		}
	} else {
		// ie8及其以下
		if (document.compatMode === "BackCompat") {
			// 怪异模式
			return {
				width: document.body.clientWidth,
				height: document.body.clientHeight
			}
		} else {
			// 标准模式
			return {
				width: document.documentElement.clientWidth,
				height: document.documentElement.clientHeight
			}
		}
	}
}

// 判断是否是手机浏览
function isMobeilBrowse() {
	var sUserAgent = navigator.userAgent.toLowerCase();
	var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
	var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
	var bIsMidp = sUserAgent.match(/midp/i) == "midp";
	var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
	var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
	var bIsAndroid = sUserAgent.match(/android/i) == "android";
	var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
	var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
	if (bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
		return true;
	} else {
		return false;
	}
}

// 判断是否是微信浏览
function isWeiXin() {
	var ua = window.navigator.userAgent.toLowerCase();
	if (ua.match(/MicroMessenger/i) == 'micromessenger') {
		return true;
	} else {
		return false;
	}
}

// 数组filter搜索
function filterItems(query) {
	return fruits.filter(function(el) {
		return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
	})
}

// 发起AJAX请求
function sendRequest(url, method, headers, param, successCallback, errorCallback) {
    $.ajax({
        url: url,
        type: method,
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(param),
        headers: headers,
        dataType: "json",
        success: function (data) {
            successCallback(data.data);
        },
        error: function (data) {
            let json = data.responseJSON;
            errorCallback(json);
        }
    });
}


本站提供的所有资源文件禁止用于一切违法、商业行为,若发生一切后果均由下载人员承担。

本文附件:Base.js [ 点我下载 ]

若无特殊说明,本站点所有内容均为原创,转载请说明出处!

原文链接:https://www.ljwei.com.cn/read/373.html

QQ客服

QQ客服

微信客服

微信客服

微信客服二维码
意见反馈

意见反馈

一键置顶