common-tools-new
Version:
常用的工具函数
309 lines (271 loc) • 10 kB
JavaScript
module.exports = {
/**
* 10进制转16进制
*
* 传入参数格式为: 一个参数时为:to16String(['',''])或者to16String("")
* 多个参数时为:to16String("","")
*/
to16String:()=>{
//10进制转16进制, 传进来的参数以逗号隔开
let params = arguments;
let arr = [];
let type = Object
.prototype
.toString
.call(params[0]);
if (type.includes('Array')) {
// 如果传进来的是数组。
params = params[0];
}
let len = params.length;
for (let i = 0; i < len; i++) {
let item = params[i];
if (typeof params[i] == 'string') {
item = item
?.trim();
}
arr.push(item.toString(16).toLocaleUpperCase());
}
console.log('16进制:', arr);
return arr;
}
/**
* 16进制转10进制
*
* 传入参数格式为: 一个参数时为:to16String(['',''])或者to16String("")
* 多个参数时为:to16String("","")
*/
to10String:()=> {
//16进制转10进制, 传进来的参数以逗号隔开
let params = arguments;
let arr = [];
let type = Object
.prototype
.toString
.call(params[0]);
if (type.includes('Array')) {
// 如果传进来的是数组。
params = params[0];
}
let len = params.length;
for (let i = 0; i < len; i++) {
let item = params[i];
if (typeof params[i] == 'string') {
item = item
?.trim();
} else {
console.log('请传字符串类型10进制!', typeof arguments[i]);
return typeof params[i];
}
arr.push(parseInt(item, 16));
}
console.log('10进制:', arr);
return arr;
}
/**
* //获取时间段内所有的日期
* @param start '2018-05-27' '2018-06-31 08:08:08' 会自动截取 只留年月日
* @param end '2018-06-31' '2018-06-31 08:08:08'
*
* 调用:getRangeTime('2018-05-27', '2018-06-31')
*/
getRangeDate:(start, end) =>{
var startTime = getDate(start);
var endTime = getDate(end);
var dateArr = [];
while ((endTime.getTime() - startTime.getTime()) >= 0) {
var year = startTime.getFullYear();
var month = (startTime.getMonth().toString().length === 1 && startTime.getMonth() !== 9)
? "0" + (parseInt(startTime.getMonth().toString(), 10) + 1)
: (startTime.getMonth() + 1);
var day = startTime
.getDate()
.toString()
.length === 1
? "0" + startTime.getDate()
: startTime.getDate();
dateArr.push(year + "-" + month + "-" + day);
startTime.setDate(startTime.getDate() + 1);
}
return dateArr;
}
/**
* 将年月日字符串 转为时间格式
* @param {*} datestr '2018-06-31 08:08:08' '2018-05-27' '2018/05/27' '2018/06/31 08:08:08'
*
*/
getDate:(datestr)=> {
datestr = datestr
.trim()
.split(/\s+/);
var temp = datestr[0]
.replace(/\//g, "-")
.split("-");
if (temp[1] === '01') {
temp[0] = parseInt(temp[0], 10) - 1;
temp[1] = '12';
} else {
temp[1] = parseInt(temp[1], 10) - 1;
}
//new Date()的月份入参实际都是当前值-1 !!!!!!!!!!!!
var date = new Date(temp[0], temp[1], temp[2]);
return date;
}
/**
*
* @param {*} time 时间
* @param {*} symbolD 年月日的连接符 默认为-
* @param {*} symbolH 时分秒的连接符 默认为:
*
* 示例:time ="2020-04-14T03:35:41.000Z";
转为 2020-4-14 11:35:41
*/
changeToDate:(time, symbolD = "-", symbolH = ":")=> {
let d = time
? new Date(time)
: new Date();
let times = d.getFullYear() + symbolD + (d.getMonth() + 1) + symbolD + d.getDate() + ' ' + d.getHours() + symbolH + d.getMinutes() + symbolH + d.getSeconds();
return times;
}
/**
* //获取url参数并转为对象
* @param {*} url 地址url
*/
getUrlToObj:(url)=> {
var url = url || window.location.search;
var params = {};
if (url.indexOf("?") !== -1) {
var str = url.split("?")[1];
var strArr = str.split("&");
for (var i = 0; i < strArr.length; i++) {
var tmpArr = strArr[i].split("=");
params[tmpArr[0]] = decodeURIComponent(tmpArr[1]);
}
}
return params;
}
/**
* //图片转为64字符串
* @param {*} file 图片file格式的文件
* @param {*} callback Base64传给回调函数
*/
fileToBase64Url:(file, callback)=> {
//1.修改图片信息
let base64Url = '';
const reader = new FileReader();
if (file) {
reader.readAsDataURL(file); //URL格式的Base64字符串以表示所读取文件的内容。
} else {
base64Url = '';
}
// FileReader.onloadend 处理loadend事件。该事件在读取操作结束时(要么成功,要么失败)触发。
// 2.阅读器已经解析完毕,图片解析完毕后的操作
reader.onloadend = () => {
// FileReader.result 只读 文件的内容。该属性仅在读取操作完成后才有效,数据的格式取决于使用哪个方法来启动读取操作。
base64Url = reader.result;
//回调返回
callback && callback(base64Url);
};
}
/**
* //设置cookie
* @param {*} name 存储名
* @param {*} value 数据
* @param {*} days 存储天数
*
* 返回值boolean
*/
setCookie:(name , value, days = 7)=> {
//默认存days 7 天
name = name.replace(/^\s+|\s$/g, "") //去掉前后的空格,反正作对比时候出现问题
let Days = days;
var exp = new Date();
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); //getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。
// document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();//escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。解码 unescape(string) //toGMTString() 方法可根据格林威治时间 (GMT) 把 Date 对象转换为字符串,并返回结果。
document.cookie = name + "=" + value + ";expires=" + exp.toGMTString(); //escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。解码 unescape(string) //toGMTString() 方法可根据格林威治时间 (GMT) 把 Date 对象转换为字符串,并返回结果。
console.log(document.cookie)
if (getCookie(name)) {
return true;
}
return false;
}
/**
* //读取cookie
* @param {*} name 存储名
* 返回值 对应的值
*/
getCookie:(name )=> {
name = name.replace(/^\s+|\s$/g, "") //去掉前后的空格,反正作对比时候出现问题
var cookieObj = {};
var cookies = document
.cookie
.split(";"); //获取到的数据是通过 ";" 分割的(a=1;b=2;c=3)
//将其转为对象 ["a=1","b=2","c=3"]
cookies.map(item => {
item = item.split("=")
item[0] = item[0].replace(/^\s?$/g, "")
cookieObj[item[0]] = item[1]
})
return cookieObj[name];
}
/**
* //删除cookie
* @param {*} name 存储名
* 返回值boolean
*/
delCookie:(name )=> {
name = name.replace(/^\s+|\s$/g, "") //去掉前后的空格,反正作对比时候出现问题
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name)
if (cval != null) {
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
let res = getCookie(name) //如果为空/undefined 就说明删除完成
if (!res) {
return true
}
}
return false;
}
/**
*
* @param {*} name 存储名
* @param {*} data 数据
* 返回值boolean
*/
//设置session
setSession:(name , data)=> {
name = name.replace(/^\s+|\s$/g, "") //去掉前后的空格,防止作对比时候出现问题
sessionStorage.setItem(name.replace(/^\s+|\s$/g, ""), JSON.stringify(data));
if (getSession(name)) {
return true;
}
return false;
}
/**
* //获取session
* @param {*} name 存储名
* * 返回值 对应的值
*/
getSession:(name ) =>{
name = name.replace(/^\s+|\s$/g, "") //去掉前后的空格,防止作对比时候出现问题
let sessionData = sessionStorage.getItem(name);
sessionData = JSON.parse(sessionData)
return sessionData;
}
/**
* 删除session
* @param {*} name 存储名
*
* 返回值 boolean
*/
delSession:(name ) =>{
name = name.replace(/^\s+|\s$/g, "") //去掉前后的空格,防止作对比时候出现问题
sessionStorage.removeItem(name)
let result = getSession(name); //如果为空就说明删除成功
if (!result) {
return true;
}
return false;
}
}