JS經常使用公共方法

 
 

/*****************************封裝一些經常使用的方法,如時間出來,數組去重等*****************************/html

 
 


/**
* 字符串處理的公共方法
* 1.去除字符串空格
* 2.字母大小寫切換
* 3.字符串替換
* 4.查找某個字符或字符串在另外一個字符串中出現的次數
*/
var strJS = {
/**
* 去除字符串空格
* @param str 要處理的字符串
* @param type 1:全部空格 2:先後空格 3:前空格 4:後空格
*/
strTrim:function (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:所有小寫
*/
strChangeCase:function (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 替換成什麼
*/
replaceAll:function (str,aFindText,aRepText){
raRegExp = new RegExp(aFindText,"g") ;
return str.replace(raRegExp,aRepText);
},
/**
* 查找某個字符或字符串在另外一個字符串中出現的次數
* @param str 字符串
* @param strSplit 要查找的字符或字符串
* @returns {Number} 返回出現的次數
* 例:countStr("klsdjflds","s") 返回2
*/
countStr:function (str,strSplit){
return str.split(strSplit).length-1
}

}cookie

 
 


/**
* 其它方法
* 1.檢測密碼強度
* 2.獲取URL參數
* 3.返回指定某個區間的一個數字(能夠不傳參,不傳就返回0-255之間的數;能夠只傳一個,返回0到傳入的這個數字之間的某個值)
* 4.隨機產生某個顏色
*/
var otherJS={
/**
* 檢測密碼強度
* @param str 字符串
* @returns 1:密碼弱 2:密碼中等 3:密碼強 4:密碼很強
*/
checkPwd:function (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;
},
/**
* 獲取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"}
*/
getUrlPrmt:function (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 返回這個區間的某個隨機值
*/
randomNumber:function (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)
*/
randomColor:function (){
//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;
}
}app

 
 


/**
* 數組相關方法
* 1.數組去重
* 2.將數組亂序輸出
* 3.獲取數組的最大值,最小值,只針對數字類型的數組
* 4.獲得數組的和,只針對數字類型數組
* 5.數組的平均值,只針對數字類型數組,小數點可能會有不少位,這裏不作處理,處理了使用就不靈活了!
* 6.隨機獲取數組中的某個元素
* 7.返回某個元素在數組中出現的次數
*/
var arrJS={
/**
* 數組去重
* 用的是Array的from方法
* @param arr 數組
* @returns 去重後的數組
*/
removeRepeatArray:function (arr){
return Array.from(new Set(arr))
} ,
/**
* 將數組亂序輸出
* @param arr 數組
* @returns 打亂後的數組
*/
upsetArr:function (arr){
return arr.sort(function(){ return Math.random() - 0.5});
},
/**
* 獲取數組的最大值,最小值,只針對數字類型的數組
* @param arr 數組
* @param type 0:最小值,1:最大值
* @returns
*/
compareArr:function (arr,type){
if(type==1){
return Math.max.apply(null,arr);
}else{
return Math.min.apply(null,arr);
}
},
/**
* 獲得數組的和,只針對數字類型數組
* @param arr 數組
* @returns {Number} 和
*/
sumArr:function (arr){
var sumText=0;
for(var i=0,len=arr.length;i<len;i++){
sumText+=arr[i];
}
return sumText
},
/**
* 數組的平均值,只針對數字類型數組,小數點可能會有不少位,這裏不作處理,處理了使用就不靈活了!
* @param arr 數組
* @returns {Number} 平均值
*/
covArr:function (arr){
var sumText=sumArr(arr);
var covText=sumText/arr.length;
return covText ;
},
/**
* 隨機獲取數組中的某個元素
* @param arr 數組
* @returns 隨機獲取的值
*/
randomOne:function (arr) {
return arr[Math.floor(Math.random() * arr.length)];
},
/**
* 返回某個元素在數組中出現的次數
* @param arr 數組
* @param ele 要查找的元素
* @returns {Number} 出現的次數
*/
getEleCount:function (arr, ele) {
var num = 0;
for (var i = 0, len = arr.length; i < len; i++) {
if (ele == arr[i]) {
num++;
}
}
return num;
},
/**
* 簡單數組排序,針對數字數組
* @param type 1:降序,0:升序
*/
sortArr:function(arr,type){
if(type==1){
//降序
arr.sort(function(a,b){
return b-a ;
}) ;
}else{
arr.sort(function(a,b){
return a-b ;
}) ;
}
return arr ;
},
sortObjectArr:function(arr,type){
if(type==1){
arr.sort(function(a,b){
if (a.age>b.age) return 1 ;
if (a.age<b.age) return -1 ;
if (a.age=b.age) return 0 ;
}) ;
}else{
arr.sort(function(a,b){
if (a.age>b.age) return -1 ;
if (a.age<b.age) return 1 ;
if (a.age=b.age) return 0 ;
}) ;
}
return arr ;
}

}dom

 
 


/*function sortArr(arr,type){
if(type==1){
//降序
arr.sort(function (n1, n2) {
return n2.count - n1.count
});
}else{
//升序
arr=arr.reverse();
}
return arr ;
}*/函數

 
 


/**
* cookie相關方法
* 1.設置cookie
* 2.獲取cookie
* 3.刪除cookie
*/
var cookieJS = {
/**
* 設置cookie
* @param name cookie名稱
* @param value cookie值
* @param iDay cookie的時間
*/
setCookie:function (name,value,iDay){
var oDate=new Date();
oDate.setDate(oDate.getDate()+iDay);
document.cookie=name+'='+value+';expires='+oDate;
},
/**
* 獲取cookie
* @param name cookie名稱
* @returns
*/
getCookie:function (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名稱
*/
removeCookie:function (name){
setCookie(name,1,-1);
}
}ui

 
 


/**
* 時間相關的方法
* 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+" 秒";
}url

 
 

}spa

 
 

 

 

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

相關文章
相關標籤/搜索