1.深複製
// 1.深複製 function deepCopy(source) { var result = {}; for (var key in source) { result[key] = typeof source[key] === 'object' ? deepCopy(source[key]) : source[key]; } return result; };
2.字符串轉對象
// 2.字符串轉對象 function str2obj (str) { if (!str) return {}; if (str.indexOf('{') >= 0 || str.indexOf('[') >= 0) { return self.eval(str); } else { return str; } }
3.去除空格
// 3.去除空格 function Trim(str, g) { var result = ''; result = str.replace(/(^\s+)|(\s+$)/g, ''); if (g.toLowerCase() == 'g') { result = result.replace(/\s/g, ''); } return result; }
4.對字符串進行加密
//4.對字符串進行加密 function compileStr(code) { var c=String.fromCharCode(code.charCodeAt(0)+code.length); for(var i=1;i<code.length;i++) { c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1)); } return escape(c); }
5.字符串進行解密
//5.字符串進行解密 function uncompileStr(code) { code=unescape(code); var c=String.fromCharCode(code.charCodeAt(0)-code.length); for(var i=1;i<code.length;i++) { c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1)); } return c; }
6.獲取cookie值
// 6.獲取cookie值 function getCookie(name) { var arr, reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); if (arr = document.cookie.match(reg)) { return unescape(arr[2]); } else { return null; } }
7.設置cookie值
// 7.設置cookie值 function setCookie(name,value, hours) { hours = 24; var exp = new Date(); exp.setTime(exp.getTime() + hours*60*60*1000); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); }
8.時間格式化
// 8.時間格式化 function formatDate(timeNum, formatStr) { //YYYY-MM-DD hh:mm:ss formatStr = 'YYYY-MM-DD'; if (!timeNum && timeNum !== 0) return ''; var date = new Date(timeNum); var YYYY = date.getFullYear(); var MM = date.getMonth() < 9 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1; var DD = date.getDate() < 10 ? '0' + date.getDate() : date.getDate(); var hh = date.getHours() < 10 ? '0' + date.getHours() : date.getHours(); var mm = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); var ss = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds(); return formatStr.replace('YYYY', YYYY).replace('MM', MM).replace('DD', DD).replace('hh', hh).replace('mm', mm).replace('ss', ss); }
9.時間格式化 年月日 星期 時分秒
/** * 9.時間格式化 年月日 星期 時分秒 * @param {*} str */ function formatDateByDay(str) { var date = new Date(); date.setTime(str); var today = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; var week = today[date.getDay()]; var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var min = date.getMinutes(); var ss = date.getSeconds(); var dateByDay = year + '-' + month + '-' + day + '/' + week + ' ' + hour + ':' + min + ':' + ss; return dateByDay; }
10.格式化時間到毫秒
/** * 10.格式化時間到毫秒 * @param {*} v * @param {*} fmt */ function fmtDateByMilliseconds(v, fmt = 'yyyy-MM-dd HH:mm:ss:mmm') { if (v) { var date = new Date(v); var y = date.getFullYear().toString(); var M = date.getMonth() < 9 ? ('0' + (date.getMonth() + 1)) : (date.getMonth() + 1).toString(); var d = date.getDate() < 10 ? ('0' + date.getDate()) : date.getDate().toString(); var h = date.getHours() < 10 ? ('0' + date.getHours()) : date.getHours().toString(); var m = date.getMinutes() < 10 ? ('0' + date.getMinutes()) : date.getMinutes().toString(); var s = date.getSeconds() < 10 ? ('0' + date.getSeconds()) : date.getSeconds().toString(); var mmm = date.getMilliseconds() < 10 ? ('0' + date.getMilliseconds()) : date.getMilliseconds().toString(); if(date.getMilliseconds() < 10) { mmm = '00' + date.getMilliseconds(); } else if(date.getMilliseconds() < 100) { mmm = '0' + date.getMilliseconds(); } else { mmm = date.getMilliseconds().toString(); } fmt = fmt.replace('yyyy', y).replace('MM', M) .replace('dd', d).replace('HH', h) .replace('mm', m).replace('ss', s) .replace('mmm', mmm); return fmt; } return ''; }
11.首字母大寫
//11.首字母大寫 function lowercaseFirst (str) { return str[0].toLowerCase() + str.substring(1); }
12.組裝圖片路徑
/** * 12.組裝圖片路徑 * @param {*} errorPath 默認圖片路徑 * @param {*} sourcePath 源路徑 * @param {*} thumb 相對路徑 */ function getThumbUrl (errorPath, sourcePath, thumb) { var urlThumb = ''; if (!thumb || thumb === 'undefined' || thumb === null || thumb === '') { urlThumb = errorPath; } else { urlThumb = `${sourcePath}${thumb}`; } return urlThumb; }
13.自定義處理空白圖片
/** * 13.自定義處理空白圖片 * defalutImg要替換的默認圖片 */ function checkDefalutImg(defalutImgUrl, imgUrl) { var recUrl = ''; if (!imgUrl) { recUrl = defalutImgUrl; } else { recUrl = imgUrl; } return 'src=' + recUrl; }
14.獲取指定長度字符串
/** * 14.獲取指定長度字符串 * @param {*} str 字符對象 * @param {*} length 截取長度 */ function getSubstring(str, length) { var result = ''; if (str && str !== '' && !isNaN(length) && str.trim().length > length) { var spaceLen = str.substring(0, length ).split(' ').length ; result = str.substring(0, length - 1 + spaceLen-1 ) + '...'; } else { result = str; } return result; }
15.截取字符串末尾數
/** * 15.截取字符串末尾數 * @param {*} str 截取的字符串 * @param {*} length 截取的長度 */ function getSubstringEnd(str, length) { var result = ''; var len = str.trim().length; if (str && str !== '' && !isNaN(length) && str.trim().length > length) { result = str.substring(len - length, len); } else { result = str; } return result; }
16.檢測是站內仍是站外連接
/** * 16.檢測是站內仍是站外連接 * @param {*} testUrl * @return true 站內連接 false 站外連接 * baidu.com 是對應公司的域名 */ function checkInternalUrl(testUrl) { return /^http(s)?:\/\/([a-zA-Z0-9][a-zA-Z0-9-]+\.){0,}baidu.com/i.test(testUrl); }
17.去掉HTML標籤
/** * 17.去掉HTML標籤 */ function removeHtml(input) { return input && input.replace(/<(?:.|\n)*?>/gm, '') .replace(/(”)/g, '"') .replace(/“/g, '"') .replace(/—/g, '-') .replace(/ /g, '') .replace(/>/g, '>') .replace(/</g, '<') .replace(/<[\w\s"':=/]*/, ''); }
18.數值截取
/** * 18.數值截取 * @param arr 數值 * @param start 開始位置 * @param end 結束位置 * @returns {*} */ function slice(arr, start, end) { if (arr && arr.slice) { return arr.slice(start, end); } return arr; }
19.手機號碼隱藏中間四位
/** * 19.手機號碼隱藏中間四位 */ function telFormat(tel) { var MAX_NUM = 11; var telStr = tel.toString(); var telResult = ''; if (!isNaN(telStr) && telStr.length === MAX_NUM) { var reg = /(\d{3})\d{4}(\d{4})/; telResult = telStr.replace(reg, '$1****$2'); } return telResult; }
20.處理a標籤url爲空的狀況
/** * 20.處理a標籤url爲空的狀況 */ function getAElement(urlStr, targeName) { var aElement = ''; if (urlStr === '' || urlStr === null || urlStr === 'http://' || urlStr === '#') { aElement = 'herf=javascript:;'; } else { aElement = 'herf=' + urlStr; if (targeName) { aElement = 'herf=' + urlStr + ' target=' + targeName; } } return aElement; }
21.截取點後的內容
/** * 21.截取點後的內容 * @param {*} string */ function getStrDotafter(string) { var substr = ''; if (string) { var str = string.lastIndexOf('.'); var str2 = string.length; substr = string.substring(str + 1, str2); } return substr; }
22.截取點前的內容
/** * 22.截取點前的內容 * @param {*} string */ function getStrDotBefore(string) { var substr = ''; if (string) { var str = string.lastIndexOf('.'); substr = string.substring(0, str + 1); } return substr; }
23.對象轉數組
/** * 23.對象轉數組 */ function obj2arr(obj = {}) { var nameList = Object.keys(obj); return nameList.map(n => { return {value: n, name: obj[n]}; }); }
24.字符串轉對象
/** * 24.字符串轉對象 */ function str2obj(str) { return JSON.parse(str); }
25.對象轉字符串
/* * 25.對象轉字符串 * */ function obj2str(obj) { if(!obj) return return JSON.stringify(obj); }
26.加法
/** * 26.加法 * @param {} a * @param {*} b */ function add(a, b) { a = a * 1; b = b * 1; var ia = a.toString().indexOf('.'); var ib = b.toString().indexOf('.'); if (ia < 0 && ib < 0) { return a + b; } if (ia < 0 && ib >= 0) { var m = b.toString().length - ib - 1; } if (ia >= 0 && ib < 0) { var m = a.toString().length - ia - 1; } if (ia >= 0 && ib >= 0) { var ma = a.toString().length - ia - 1; var mb = b.toString().length - ib - 1; var m = ma > mb ? ma : mb; } return (a * Math.pow(10, m) + b * Math.pow(10, m)) / Math.pow(10, m); }
27.數字金額轉大寫
/* * 27.數字金額轉大寫 * */ function numTurnCh(n) { if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return "數據非法"; var unit = "千百拾億千百拾萬千百拾元角分", str = ""; n += "00"; var p = n.indexOf('.'); if (p >= 0) n = n.substring(0, p) + n.substr(p + 1, 2); unit = unit.substr(unit.length - n.length); for (var i = 0; i < n.length; i++) str += '零壹貳叄肆伍陸柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i); return str.replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(萬|億|元)/g, "$1").replace(/(億)萬|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整"); }
28.格式化金額
/* * 28.格式化金額 * v:金額 * num:四捨五入的小數位 * */ function fmtAmount(v, isCh = false, num = 2) { if ((!v || v <= 0) && isCh) return '面議'; if (isNaN(Number(v))) return ''; return Number(v).toFixed(num); }
29.數組去重
/** * 29.數組去重 */ function unique4(array) { array.sort(); var re = [array[0]]; for (var i = 1; i < array.length; i++) { if (array[i] !== re[re.length - 1]) { re.push(array[i]); } } return re; }<p>---恢復內容結束---</p>## 經常使用方法函數 > ### 1.深複製
// 1.深複製
function deepCopy(source) {
var result = {};
for (var key in source) {
result[key] = typeof source[key] === 'object' ? deepCopy(source[key]) : source[key];
}javascript
return result;
};html
> ### 2.字符串轉對象
// 2.字符串轉對象
function str2obj (str) {
if (!str) return {};
if (str.indexOf('{') >= 0 || str.indexOf('[') >= 0) {
return self.eval(str);
} else {
return str;
}
}java
> ### 3.去除空格
// 3.去除空格
function Trim(str, g) {
var result = '';數組
result = str.replace(/(^\s+)|(\s+$)/g, ''); if (g.toLowerCase() == 'g') { result = result.replace(/\s/g, ''); } return result;
}cookie
> ### 4.對字符串進行加密
//4.對字符串進行加密
function compileStr(code) {
var c=String.fromCharCode(code.charCodeAt(0)+code.length);
for(var i=1;i<code.length;i++)
{
c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1));
}
return escape(c);
}函數
> ### 5.字符串進行解密
//5.字符串進行解密
function uncompileStr(code) {
code=unescape(code);
var c=String.fromCharCode(code.charCodeAt(0)-code.length);
for(var i=1;i<code.length;i++)
{
c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1));
}
return c;
}加密
> ### 6.獲取cookie值
// 6.獲取cookie值
function getCookie(name) {
var arr, reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)');url
if (arr = document.cookie.match(reg)) { return unescape(arr[2]); } else { return null; }
}spa
> ### 7.設置cookie值
// 7.設置cookie值
function setCookie(name,value, hours) {
hours = 24;
var exp = new Date();
exp.setTime(exp.getTime() + hours6060*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}code
> ### 8.時間格式化
// 8.時間格式化
function formatDate(timeNum, formatStr) { //YYYY-MM-DD hh:mm:ss
formatStr = 'YYYY-MM-DD';
if (!timeNum && timeNum !== 0) return '';
var date = new Date(timeNum);
var YYYY = date.getFullYear();
var MM = date.getMonth() < 9 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
var DD = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
var hh = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
var mm = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
var ss = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
return formatStr.replace('YYYY', YYYY).replace('MM', MM).replace('DD', DD).replace('hh', hh).replace('mm', mm).replace('ss', ss);
}
> ### 9.時間格式化 年月日 星期 時分秒
/**
@param {} str
/
function formatDateByDay(str) {
var date = new Date();
date.setTime(str);
var today = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
var week = today[date.getDay()];
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var hour = date.getHours();
var min = date.getMinutes();
var ss = date.getSeconds();
var dateByDay = year + '-' + month + '-' + day + '/' + week + ' ' + hour + ':' + min + ':' + ss;
return dateByDay;
}
> ### 10.格式化時間到毫秒
/**
@param {} fmt
/
function fmtDateByMilliseconds(v, fmt = 'yyyy-MM-dd HH:mm:ss:mmm') {
if (v) {
var date = new Date(v);
var y = date.getFullYear().toString();
var M = date.getMonth() < 9 ? ('0' + (date.getMonth() + 1)) : (date.getMonth() + 1).toString();
var d = date.getDate() < 10 ? ('0' + date.getDate()) : date.getDate().toString();
var h = date.getHours() < 10 ? ('0' + date.getHours()) : date.getHours().toString();
var m = date.getMinutes() < 10 ? ('0' + date.getMinutes()) : date.getMinutes().toString();
var s = date.getSeconds() < 10 ? ('0' + date.getSeconds()) : date.getSeconds().toString();
var mmm = date.getMilliseconds() < 10 ? ('0' + date.getMilliseconds()) : date.getMilliseconds().toString();
if(date.getMilliseconds() < 10) {
mmm = '00' + date.getMilliseconds();
} else if(date.getMilliseconds() < 100) {
mmm = '0' + date.getMilliseconds();
} else {
mmm = date.getMilliseconds().toString();
}
fmt = fmt.replace('yyyy', y).replace('MM', M)
.replace('dd', d).replace('HH', h)
.replace('mm', m).replace('ss', s)
.replace('mmm', mmm);
return fmt;
}
return '';
}
```
11.首字母大寫
//11.首字母大寫 function lowercaseFirst (str) { return str[0].toLowerCase() + str.substring(1); }
12.組裝圖片路徑
/** * 12.組裝圖片路徑 * @param {*} errorPath 默認圖片路徑 * @param {*} sourcePath 源路徑 * @param {*} thumb 相對路徑 */ function getThumbUrl (errorPath, sourcePath, thumb) { var urlThumb = ''; if (!thumb || thumb === 'undefined' || thumb === null || thumb === '') { urlThumb = errorPath; } else { urlThumb = `${sourcePath}${thumb}`; } return urlThumb; }
13.自定義處理空白圖片
/** * 13.自定義處理空白圖片 * defalutImg要替換的默認圖片 */ function checkDefalutImg(defalutImgUrl, imgUrl) { var recUrl = ''; if (!imgUrl) { recUrl = defalutImgUrl; } else { recUrl = imgUrl; } return 'src=' + recUrl; }
14.獲取指定長度字符串
/** * 14.獲取指定長度字符串 * @param {*} str 字符對象 * @param {*} length 截取長度 */ function getSubstring(str, length) { var result = ''; if (str && str !== '' && !isNaN(length) && str.trim().length > length) { var spaceLen = str.substring(0, length ).split(' ').length ; result = str.substring(0, length - 1 + spaceLen-1 ) + '...'; } else { result = str; } return result; }
15.截取字符串末尾數
/** * 15.截取字符串末尾數 * @param {*} str 截取的字符串 * @param {*} length 截取的長度 */ function getSubstringEnd(str, length) { var result = ''; var len = str.trim().length; if (str && str !== '' && !isNaN(length) && str.trim().length > length) { result = str.substring(len - length, len); } else { result = str; } return result; }
16.檢測是站內仍是站外連接
/** * 16.檢測是站內仍是站外連接 * @param {*} testUrl * @return true 站內連接 false 站外連接 * baidu.com 是對應公司的域名 */ function checkInternalUrl(testUrl) { return /^http(s)?:\/\/([a-zA-Z0-9][a-zA-Z0-9-]+\.){0,}baidu.com/i.test(testUrl); }
17.去掉HTML標籤
/** * 17.去掉HTML標籤 */ function removeHtml(input) { return input && input.replace(/<(?:.|\n)*?>/gm, '') .replace(/(”)/g, '"') .replace(/“/g, '"') .replace(/—/g, '-') .replace(/ /g, '') .replace(/>/g, '>') .replace(/</g, '<') .replace(/<[\w\s"':=/]*/, ''); }
18.數值截取
/** * 18.數值截取 * @param arr 數值 * @param start 開始位置 * @param end 結束位置 * @returns {*} */ function slice(arr, start, end) { if (arr && arr.slice) { return arr.slice(start, end); } return arr; }
19.手機號碼隱藏中間四位
/** * 19.手機號碼隱藏中間四位 */ function telFormat(tel) { var MAX_NUM = 11; var telStr = tel.toString(); var telResult = ''; if (!isNaN(telStr) && telStr.length === MAX_NUM) { var reg = /(\d{3})\d{4}(\d{4})/; telResult = telStr.replace(reg, '$1****$2'); } return telResult; }
20.處理a標籤url爲空的狀況
/** * 20.處理a標籤url爲空的狀況 */ function getAElement(urlStr, targeName) { var aElement = ''; if (urlStr === '' || urlStr === null || urlStr === 'http://' || urlStr === '#') { aElement = 'herf=javascript:;'; } else { aElement = 'herf=' + urlStr; if (targeName) { aElement = 'herf=' + urlStr + ' target=' + targeName; } } return aElement; }
21.截取點後的內容
/** * 21.截取點後的內容 * @param {*} string */ function getStrDotafter(string) { var substr = ''; if (string) { var str = string.lastIndexOf('.'); var str2 = string.length; substr = string.substring(str + 1, str2); } return substr; }
22.截取點前的內容
/** * 22.截取點前的內容 * @param {*} string */ function getStrDotBefore(string) { var substr = ''; if (string) { var str = string.lastIndexOf('.'); substr = string.substring(0, str + 1); } return substr; }
23.對象轉數組
/** * 23.對象轉數組 */ function obj2arr(obj = {}) { var nameList = Object.keys(obj); return nameList.map(n => { return {value: n, name: obj[n]}; }); }
24.字符串轉對象
/** * 24.字符串轉對象 */ function str2obj(str) { return JSON.parse(str); }
25.對象轉字符串
/* * 25.對象轉字符串 * */ function obj2str(obj) { if(!obj) return return JSON.stringify(obj); }
26.加法
/** * 26.加法 * @param {} a * @param {*} b */ function add(a, b) { a = a * 1; b = b * 1; var ia = a.toString().indexOf('.'); var ib = b.toString().indexOf('.'); if (ia < 0 && ib < 0) { return a + b; } if (ia < 0 && ib >= 0) { var m = b.toString().length - ib - 1; } if (ia >= 0 && ib < 0) { var m = a.toString().length - ia - 1; } if (ia >= 0 && ib >= 0) { var ma = a.toString().length - ia - 1; var mb = b.toString().length - ib - 1; var m = ma > mb ? ma : mb; } return (a * Math.pow(10, m) + b * Math.pow(10, m)) / Math.pow(10, m); }
27.數字金額轉大寫
/* * 27.數字金額轉大寫 * */ function numTurnCh(n) { if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return "數據非法"; var unit = "千百拾億千百拾萬千百拾元角分", str = ""; n += "00"; var p = n.indexOf('.'); if (p >= 0) n = n.substring(0, p) + n.substr(p + 1, 2); unit = unit.substr(unit.length - n.length); for (var i = 0; i < n.length; i++) str += '零壹貳叄肆伍陸柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i); return str.replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(萬|億|元)/g, "$1").replace(/(億)萬|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整"); }
28.格式化金額
/* * 28.格式化金額 * v:金額 * num:四捨五入的小數位 * */ function fmtAmount(v, isCh = false, num = 2) { if ((!v || v <= 0) && isCh) return '面議'; if (isNaN(Number(v))) return ''; return Number(v).toFixed(num); }
29.數組去重
/** * 29.數組去重 */ function unique4(array) { array.sort(); var re = [array[0]]; for (var i = 1; i < array.length; i++) { if (array[i] !== re[re.length - 1]) { re.push(array[i]); } } return re; }