常用方法函数
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];
}
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() + hours6060*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;
}