翼度科技»论坛 编程开发 JavaScript 查看内容

收集项目中用到的工具函数

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
工具函数

收集项目中常用的工具函数,以备后用,使用 TS 编写。
1. 时间格式化
  1. /**
  2. * 格式化时间格式
  3. * @param {*} value 传入时间(单位秒)
  4. * @returns 返回时间格式 XX 天 XX 小时 XX 分钟 XX 秒
  5. */
  6. export const formatSecond = function (value: number): string {
  7.   value = value ?? 0;
  8.   let secondTime = parseInt(value); // 秒
  9.   let minuteTime = 0; // 分
  10.   let hourTime = 0; // 小时
  11.   let dayTime = 0; // 天
  12.   let result = '';
  13.   //如果秒数不小于 60,将秒数转换成整数
  14.   if (secondTime >= 60) {
  15.     //获取分钟,除以 60 取整数,得到整数分钟
  16.     minuteTime = parseInt(secondTime / 60);
  17.     //获取秒数,秒数取佘,得到整数秒数
  18.     secondTime = parseInt(secondTime % 60);
  19.     //如果分钟不小于 60,将分钟转换成小时
  20.     if (minuteTime >= 60) {
  21.       //获取小时,获取分钟除以 60,得到整数小时
  22.       hourTime = parseInt(minuteTime / 60);
  23.       //获取小时后取佘的分,获取分钟除以 60 取佘的分
  24.       minuteTime = parseInt(minuteTime % 60);
  25.       //如果小时数不小于 24,将小时转换成天
  26.       if (hourTime >= 24) {
  27.         //获取天,获取小时除以 24,得到整数天
  28.         dayTime = parseInt(hourTime / 24);
  29.         //获取天后取佘的小时
  30.         hourTime = parseInt(hourTime % 24);
  31.       }
  32.     }
  33.   }
  34.   if (secondTime > 0) {
  35.     result = `${parseInt(secondTime)} 秒`;
  36.   }
  37.   if (minuteTime > 0) {
  38.     result = `${parseInt(minuteTime)} 分 ${result}`;
  39.   }
  40.   if (hourTime > 0) {
  41.     result = `${parseInt(hourTime)} 时 ${result}`;
  42.   }
  43.   if (dayTime > 0) {
  44.     result = `${parseInt(dayTime)} 天 ${result}`;
  45.   }
  46.   return result;
  47. };
复制代码
2. 系统、环境和浏览器
  1. /**
  2. * 判断是否 PC
  3. */
  4. export const isPC = (): boolean => {
  5.   const userAgentInfo = navigator.userAgent;
  6.   const Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod'];
  7.   let flag = true;
  8.   for (let v = 0; v < Agents.length; v++) {
  9.     if (userAgentInfo.indexOf(Agents[v]) > 0) {
  10.       flag = false;
  11.       break;
  12.     }
  13.   }
  14.   return flag;
  15. };
  16. /**
  17. * 判断是否微信环境(微信app,桌面微信软件等)
  18. */
  19. export const isWechat = (): boolean => {
  20.   return /MicroMessenger/i.test(window.navigator.userAgent);
  21. };
  22. /**
  23. * 判断是否 IOS 系统
  24. */
  25. export const isIOS = (): boolean => {
  26.   const u = navigator.userAgent;
  27.   return !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
  28. };
  29. /**
  30. * 判断是否 Android 系统
  31. */
  32. export const isAndroid = (): boolean => {
  33.   const u = navigator.userAgent;
  34.   return u.indexOf('Android') > -1 || u.indexOf('Adr') > -1;
  35. };
  36. /**
  37. * 浏览器
  38. */
  39. export const getBrowser = () => {
  40.   let explorer = navigator.userAgent.toLowerCase();
  41.   let browser = "";
  42.   if (
  43.     explorer.indexOf("msie") > -1 ||
  44.     !!window.ActiveXObject ||
  45.     "ActiveXObject" in window
  46.   ) {
  47.     browser = "IE";
  48.   } else if (explorer.indexOf("chrome") > -1) {
  49.     browser = "chrome";
  50.   } else if (explorer.indexOf("firefox") > -1) {
  51.     browser = "firefox";
  52.   } else if (explorer.indexOf("safari") > -1) {
  53.     browser = "safari";
  54.   } else if (explorer.indexOf("opera") > -1) {
  55.     browser = "opera";
  56.   }
  57.   return browser;
  58. }
复制代码
3. 获取富文本内容中的图片

[code]/** * 获取富文本内容中的图片 */export const getImgList = (richText: string): string[] => {  // 如果富文本内容为空,则没有图片  if (!richText) {    return [];  }  const regex = /

举报 回复 使用道具