分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

JS常用公共方法

发布时间:2023-09-06 01:25责任编辑:林大明关键词:暂无标签
/*******封装一些常用的方法,如时间处理,数组去重等******//** * 去除字符串空格 ??* @param str 要处理的字符串 * @param type 1:所有空格 ?2:前后空格 ?3:前空格 4:后空格 */function strTrim(str,type){ ???switch (type){ ???????case 1:return str.replace(/\s+/g,""); ???????case 2:return str.replace(/(^\s*)|(\s*$)/g, ""); ????????case 3:return str.replace(/(^\s*)/g, ""); ????????case 4:return str.replace(/(\s*$)/g, ""); ????????default:return str; ????}}/** * 字母大小写切换 * @param str 要处理的字符串 * @param type 1:首字母大写 2:首页母小写 3:大小写转换 4:全部大写 5:全部小写 */function changeStrCase(str,type){ ???function ToggleCase(str) { ???????var itemText = "" ???????str.split("").forEach( ???????????function (item) { ???????????????if (/^([a-z]+)/.test(item)) { ???????????????????itemText += item.toUpperCase(); ???????????????} ???????????????else if (/^([A-Z]+)/.test(item)) { ???????????????????itemText += item.toLowerCase(); ???????????????} ???????????????else{ ???????????????????itemText += item; ???????????????} ???????????}); ???????return itemText; ???} ???switch (type) { ???????case 1: ???????????return str.replace(/^(\w)(\w+)/, function (v, v1, v2) { ???????????????return v1.toUpperCase() + v2.toLowerCase(); ???????????}); ???????case 2: ???????????return str.replace(/^(\w)(\w+)/, function (v, v1, v2) { ???????????????return v1.toLowerCase() + v2.toUpperCase(); ???????????}); ???????case 3: ???????????return ToggleCase(str); ???????case 4: ???????????return str.toUpperCase(); ???????case 5: ???????????return str.toLowerCase(); ???????default: ???????????return str; ???}}/** * 字符串替换 * @param str 字符串 * @param aFindText 要替换的字符 * @param aRepText 替换成什么 */function replaceAll(str,aFindText,aRepText){ ???raRegExp = new RegExp(aFindText,"g") ; ???return str.replace(raRegExp,aRepText);}/** * 检测密码强度 * @param str 字符串 ?* @returns 1:密码弱 2:密码中等 3:密码强 4:密码很强 */function checkPwd(str) { ???var nowLv = 0; ???if (str.length < 6) { ???????return nowLv ???} ???; ???if (/[0-9]/.test(str)) { ???????nowLv++ ???} ???; ???if (/[a-z]/.test(str)) { ???????nowLv++ ???} ???; ???if (/[A-Z]/.test(str)) { ???????nowLv++ ???} ???; ???if (/[\.|-|_]/.test(str)) { ???????nowLv++ ???} ???; ???return nowLv;}/** * 查找某个字符或字符串在另一个字符串中出现的次数 * @param str 字符串 * @param strSplit 要查找的字符或字符串 * @returns {Number} 返回出现的次数 * 例:countStr("klsdjflds","s") 返回2 */function countStr (str,strSplit){ ???return str.split(strSplit).length-1}/** * 数组去重 * 用的是Array的from方法 * @param arr 数组 * @returns 去重后的数组 */function removeRepeatArray(arr){ ???return Array.from(new Set(arr))}/** * 将数组乱序输出 * @param arr 数组 * @returns 打乱后的数组 */function upsetArr(arr){ ???return arr.sort(function(){ return Math.random() - 0.5});}function sortArr(arr,type){ ???if(type==1){ ???????//降序 ???????arr.sort(function (n1, n2) { ???????????return n2.count - n1.count ???????}); ???}else{ ???????//升序 ???????arr=arr.reverse(); ???} ???return arr ;}/** * 获取数组的最大值,最小值,只针对数字类型的数组 * @param arr 数组 * @param type 0:最小值,1:最大值 * @returns */function compareArr(arr,type){ ???if(type==1){ ???????return Math.max.apply(null,arr); ???}else{ ???????return Math.min.apply(null,arr); ???}}/** * 数组的和,只针对数字类型数组 * @param arr 数组 * @returns {Number} 和 */function sumArr(arr){ ???var sumText=0; ???for(var i=0,len=arr.length;i<len;i++){ ???????sumText+=arr[i]; ???} ???return sumText}/** * 平均值,小数点可能会有很多位,这里不做处理,处理了使用就不灵活了! * @param arr 数组 * @returns {Number} 平均值 */function covArr(arr){ ???var sumText=sumArr(arr); ???var covText=sumText/arr.length; ???return covText}/** * 随机获取数组中的某个元素 * @param arr 数组 * @returns 随机获取的值 */function randomOne(arr) { ???return arr[Math.floor(Math.random() * arr.length)];}/** * 返回某个元素在数组中出现的次数 * @param arr 数组 ?* @param ele 要查找的元素 * @returns {Number} 出现的次数 */function getEleCount (arr, ele) { ???var num = 0; ???for (var i = 0, len = arr.length; i < len; i++) { ???????if (ele == arr[i]) { ???????????num++; ???????} ???} ???return num;}/** * 设置cookie * @param name cookie名称 * @param value cookie值 * @param iDay cookie的时间 */function setCookie(name,value,iDay){ ???var oDate=new Date(); ???oDate.setDate(oDate.getDate()+iDay); ???document.cookie=name+‘=‘+value+‘;expires=‘+oDate;}/** * 获取cookie * @param name cookie名称 * @returns */function getCookie(name){ ???var arr=document.cookie.split(‘; ‘); ???for(var i=0;i<arr.length;i++){ ???????var arr2=arr[i].split(‘=‘); ???????if(arr2[0]==name) ???????{ ???????????return arr2[1]; ???????} ???} ???return ‘‘;}/** * 删除cookie * @param name cookie名称 */function removeCookie(name){ ???setCookie(name,1,-1);}/** * 获取URL参数 * @param url 地址 * @returns 例:getUrlPrmt("http://www.baidu.com?id=1&nam=张三&uid=12345654321&type=1,2,3"),结果{id: "1", nam: "张三", uid: "12345654321", type: "1,2,3"} */function getUrlPrmt(url) { ???url = url ? url : window.location.href; ???let _pa = url.substring(url.indexOf(‘?‘) + 1), _arrS = _pa.split(‘&‘), _rs = {}; ???for (var i = 0, _len = _arrS.length; i < _len; i++) { ???????let pos = _arrS[i].indexOf(‘=‘); ???????if (pos == -1) { ???????????continue; ???????} ???????let name = _arrS[i].substring(0, pos), value = window.decodeURIComponent(_arrS[i].substring(pos + 1)); ???????_rs[name] = value; ???} ???return _rs;}/** * 返回指定某个区间的一个数字(可以不传参,不传就返回0-255之间的数;可以只传一个,返回0到传入的这个数字之间的某个值) * @param n1 开始区间 例:5 * @param n2 结束区间 例:10 * @returns 返回这个区间的某个随机值 */function randomNumber(n1,n2){ ???????if(arguments.length===2){ ???????return Math.round(n1+Math.random()*(n2-n1)); ???} ??????else if(arguments.length===1){ ???????return Math.round(Math.random()*n1) ???} ??????else{ ???????return Math.round(Math.random()*255) ???} ?}/** * 随机产生某个颜色 * @returns {String} 颜色 例:rgb(250,82,49) */function randomColor(){ ???//randomNumber是上面定义的函数 ???//写法1 ???return ‘rgb(‘ + randomNumber(255) + ‘,‘ + randomNumber(255) + ‘,‘ + randomNumber(255) + ‘)‘; ???????//写法2 ???return ‘#‘+Math.random().toString(16).substring(2).substr(0,6); ???????//写法3 ???var color=‘#‘; ???for(var i=0;i<6;i++){ ???????color+=‘0123456789abcdef‘[randomNumber(15)]; ???} ???return color;}/** * 时间相关的方法 * 1.倒计时(默认开始时间为当前时间) */var timeJs = { ???????????/** ????* 倒计时(默认开始时间为当前时间) ????* @param endTime 结束时间 ????* @returns 例:剩余时间1天 16小时 45 分钟41 秒 ???*/ ???getEndTime:function(endTime){ ???????var startDate=new Date(); ?//开始时间,当前时间 ???????var endDate=new Date(endTime); //结束时间,需传入时间参数 ???????var t=endDate.getTime()-startDate.getTime(); ?//时间差的毫秒数 ???????var d=0,h=0,m=0,s=0; ???????if(t>=0){ ?????????d=Math.floor(t/1000/3600/24); ?????????h=Math.floor(t/1000/60/60%24); ?????????m=Math.floor(t/1000/60%60); ?????????s=Math.floor(t/1000%60); ???????} ????????return "剩余时间"+d+"天 "+h+"小时 "+m+" 分钟"+s+" 秒"; ???}}

原文地址:http://www.cnblogs.com/LeoBoy/p/7262331.html

JS常用公共方法

原文地址:http://www.cnblogs.com/-scl/p/7852596.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved