文章摘自269个工具函数库:269个工具函数库上

日期工具date工具函数

110.浏览器存储相关storage工具函数

主要为浏览器存储方面的工具函数,大部分搬运自大神火狼1

111.localStorage 存贮

  1. /**
  2. * 目前对象值如果是函数 、RegExp等特殊对象存贮会被忽略
  3. * @param { String } key 属性
  4. * @param { string } value 值
  5. */
  6. export const localStorageSet = (key, value) => {
  7. if (typeof (value) === 'object') value = JSON.stringify(value);
  8. localStorage.setItem(key, value)
  9. };

112.localStorage 获取

  1. /**
  2. * @param {String} key 属性
  3. */
  4. export const localStorageGet = (key) => {
  5. return localStorage.getItem(key)
  6. };

113.localStorage 移除

  1. /**
  2. * @param {String} key 属性
  3. */
  4. export const localStorageGet = (key) => {
  5. return localStorage.getItem(key)
  6. };

114.localStorage 存贮某一段时间失效

  1. /**
  2. * @param {String} key 属性
  3. * @param {*} value 存贮值
  4. * @param { number } expire 过期时间,毫秒数
  5. */
  6. export const localStorageSetExpire = (key, value, expire) => {
  7. if (typeof (value) === 'object') value = JSON.stringify(value);
  8. localStorage.setItem(key, value);
  9. setTimeout(() => {
  10. localStorage.removeItem(key)
  11. }, expire)
  12. };

115.sessionStorage 存贮

  1. /**
  2. * @param {String} key 属性
  3. * @param {*} value 值
  4. */
  5. export const sessionStorageSet = (key, value) => {
  6. if (typeof (value) === 'object') value = JSON.stringify(value);
  7. sessionStorage.setItem(key, value)
  8. };

116.sessionStorage 获取

  1. /**
  2. * @param {String} key 属性
  3. */
  4. export const sessionStorageGet = (key) => {
  5. return sessionStorage.getItem(key)
  6. };

117.sessionStorage 删除

  1. /**
  2. * @param {String} key 属性
  3. */
  4. export const sessionStorageRemove = (key) => {
  5. sessionStorage.removeItem(key)
  6. };

118.sessionStorage 存贮某一段时间失效

  1. /**
  2. * @param {String} key 属性
  3. * @param {*} value 存贮值
  4. * @param {String} expire 过期时间,毫秒数
  5. */
  6. export const sessionStorageSetExpire = (key, value, expire) => {
  7. if (typeof (value) === 'object') value = JSON.stringify(value);
  8. sessionStorage.setItem(key, value);
  9. setTimeout(() => {
  10. sessionStorage.removeItem(key)
  11. }, expire)
  12. };

119.cookie 存贮

  1. /**
  2. * @param {String} key 属性
  3. * @param {*} value 值
  4. * @param { String } expire 过期时间,单位天
  5. */
  6. export const cookieSet = (key, value, expire) => {
  7. const d = new Date();
  8. d.setDate(d.getDate() + expire);
  9. document.cookie = `${key}=${value};expires=${d.toUTCString()}`
  10. };

120.cookie 获取

  1. /**
  2. * @param {String} key 属性
  3. */
  4. export const cookieGet = (key) => {
  5. const cookieStr = unescape(document.cookie);
  6. const arr = cookieStr.split('; ');
  7. let cookieValue = '';
  8. for (let i = 0; i < arr.length; i++) {
  9. const temp = arr[i].split('=');
  10. if (temp[0] === key) {
  11. cookieValue = temp[1];
  12. break
  13. }
  14. }
  15. return cookieValue
  16. };

121.cookie 删除

  1. /**
  2. * @param {String} key 属性
  3. */
  4. export const cookieRemove = (key) => {
  5. document.cookie = `${encodeURIComponent(key)}=;expires=${new Date()}`
  6. };

更多的工具函数

122.金钱格式化,三位加逗号

  1. /**
  2. * @param { number } num
  3. */
  4. export const formatMoney = num => num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");

123.截取字符串并加身略号

  1. export function subText(str, length) {
  2. if (str.length === 0) {
  3. return '';
  4. }
  5. if (str.length > length) {
  6. return str.substr(0, length) + "...";
  7. } else {
  8. return str;
  9. }
  10. }

124.获取文件base64编码

  1. /**
  2. * @param file
  3. * @param format 指定文件格式
  4. * @param size 指定文件大小(字节)
  5. * @param formatMsg 格式错误提示
  6. * @param sizeMsg 大小超出限制提示
  7. * @returns {Promise<any>}
  8. */
  9. export function fileToBase64String(file, format = ['jpg', 'jpeg', 'png', 'gif'], size = 20 * 1024 * 1024, formatMsg = '文件格式不正确', sizeMsg = '文件大小超出限制') {
  10. return new Promise((resolve, reject) => {
  11. // 格式过滤
  12. let suffix = file.type.split('/')[1].toLowerCase();
  13. let inFormat = false;
  14. for (let i = 0; i < format.length; i++) {
  15. if (suffix === format[i]) {
  16. inFormat = true;
  17. break;
  18. }
  19. }
  20. if (!inFormat) {
  21. reject(formatMsg);
  22. }
  23. // 大小过滤
  24. if (file.size > size) {
  25. reject(sizeMsg);
  26. }
  27. // 转base64字符串
  28. let fileReader = new FileReader();
  29. fileReader.readAsDataURL(file);
  30. fileReader.onload = () => {
  31. let res = fileReader.result;
  32. resolve({base64String: res, suffix: suffix});
  33. reject('异常文件,请重新选择');
  34. }
  35. })
  36. }

125.B转换到KB,MB,GB并保留两位小数

  1. /**
  2. * @param { number } fileSize
  3. */
  4. export function formatFileSize(fileSize) {
  5. let temp;
  6. if (fileSize < 1024) {
  7. return fileSize + 'B';
  8. } else if (fileSize < (1024 * 1024)) {
  9. temp = fileSize / 1024;
  10. temp = temp.toFixed(2);
  11. return temp + 'KB';
  12. } else if (fileSize < (1024 * 1024 * 1024)) {
  13. temp = fileSize / (1024 * 1024);
  14. temp = temp.toFixed(2);
  15. return temp + 'MB';
  16. } else {
  17. temp = fileSize / (1024 * 1024 * 1024);
  18. temp = temp.toFixed(2);
  19. return temp + 'GB';
  20. }
  21. }

126.base64转file

  1. /**
  2. * @param { base64 } base64
  3. * @param { string } filename 转换后的文件名
  4. */
  5. export const base64ToFile = (base64, filename )=> {
  6. let arr = base64.split(',');
  7. let mime = arr[0].match(/:(.*?);/)[1];
  8. let suffix = mime.split('/')[1] ;// 图片后缀
  9. let bstr = atob(arr[1]);
  10. let n = bstr.length;
  11. let u8arr = new Uint8Array(n);
  12. while (n--) {
  13. u8arr[n] = bstr.charCodeAt(n)
  14. }
  15. return new File([u8arr], `${filename}.${suffix}`, { type: mime })
  16. };

127.base64转blob

  1. /**
  2. * @param { base64 } base64
  3. */
  4. export const base64ToBlob = base64 => {
  5. let arr = base64.split(','),
  6. mime = arr[0].match(/:(.*?);/)[1],
  7. bstr = atob(arr[1]),
  8. n = bstr.length,
  9. u8arr = new Uint8Array(n);
  10. while (n--) {
  11. u8arr[n] = bstr.charCodeAt(n);
  12. }
  13. return new Blob([u8arr], { type: mime });
  14. };