util.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /**
  2. * 工具类
  3. */
  4. module.exports = {
  5. /**
  6. * scene解码
  7. */
  8. scene_decode(e) {
  9. if (e === undefined)
  10. return {};
  11. let scene = decodeURIComponent(e),
  12. params = scene.split(','),
  13. data = {};
  14. for (let i in params) {
  15. var val = params[i].split(':');
  16. val.length > 0 && val[0] && (data[val[0]] = val[1] || null)
  17. }
  18. return data;
  19. },
  20. /**
  21. * 格式化日期格式 (用于兼容ios Date对象)
  22. */
  23. format_date(time) {
  24. // 将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
  25. return time.replace(/\-/g, "/");
  26. },
  27. /**
  28. * 对象转URL
  29. */
  30. urlEncode(data) {
  31. var _result = [];
  32. for (var key in data) {
  33. var value = data[key];
  34. if (value.constructor == Array) {
  35. value.forEach(_value => {
  36. _result.push(key + "=" + _value);
  37. });
  38. } else {
  39. _result.push(key + '=' + value);
  40. }
  41. }
  42. return _result.join('&');
  43. },
  44. /**
  45. * 遍历对象
  46. */
  47. objForEach(obj, callback) {
  48. Object.keys(obj).forEach((key) => {
  49. callback(obj[key], key);
  50. });
  51. },
  52. /**
  53. * 是否在数组内
  54. */
  55. inArray(search, array) {
  56. for (var i in array) {
  57. if (array[i] == search) {
  58. return true;
  59. }
  60. }
  61. return false;
  62. },
  63. /**
  64. * 判断是否为正整数
  65. */
  66. isPositiveInteger(value) {
  67. return /(^[0-9]\d*$)/.test(value);
  68. },
  69. /**
  70. * 对Date的扩展,将 Date 转化为指定格式的String
  71. * 月(Y)、月(m)、日(d)、小时(H)、分(M)、秒(S) 可以用 1-2 个占位符,
  72. * 例子:
  73. * dateFormat('YYYY-mm-dd HH:MM:SS', new Date()) ==> 2020-01-01 08:00:00
  74. */
  75. dateFormat(fmt, date) {
  76. const opt = {
  77. "Y+": date.getFullYear().toString(), // 年
  78. "m+": (date.getMonth() + 1).toString(), // 月
  79. "d+": date.getDate().toString(), // 日
  80. "H+": date.getHours().toString(), // 时
  81. "M+": date.getMinutes().toString(), // 分
  82. "S+": date.getSeconds().toString() // 秒
  83. // 有其他格式化字符需求可以继续添加,必须转化成字符串
  84. };
  85. let ret;
  86. for (let k in opt) {
  87. ret = new RegExp("(" + k + ")").exec(fmt);
  88. if (ret) {
  89. fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
  90. };
  91. };
  92. return fmt;
  93. },
  94. };