1. 程式人生 > >JS常用公共方法

JS常用公共方法

erl .cn url pset ply con app rtrim coo

/*******封裝一些常用的方法,如時間處理,數組去重等******/


/**
 * 去除字符串空格  
 * @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常用公共方法