/*******封装一些常用的方法,如时间处理,数组去重等******/ /** * 去除字符串空格 * @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
原文:http://www.cnblogs.com/-scl/p/7852596.html