util.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. const formatTime = date => {
  2. const year = date.getFullYear()
  3. const month = date.getMonth() + 1
  4. const day = date.getDate()
  5. const hour = date.getHours()
  6. const minute = date.getMinutes()
  7. const second = date.getSeconds()
  8. return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
  9. }
  10. const formatNumber = n => {
  11. n = n.toString()
  12. return n[1] ? n : '0' + n
  13. }
  14. const getTypeSn = url => {
  15. let type_sn = ''
  16. if (url.indexOf('type_sn') != -1 && url.indexOf('bonusex') != -1) {
  17. let arr = url.split('&')
  18. arr.some(item => {
  19. if (item.indexOf('type_sn') != -1) {
  20. type_sn = item.split('=')[1]
  21. return true
  22. }
  23. })
  24. }
  25. return type_sn
  26. }
  27. function getUrlPrefixAndParams(url) {
  28. // 用JS拿到URL,如果函数接收了URL,那就用函数的参数。如果没传参,就使用当前页面的URL
  29. let params = url.split('?');
  30. let prefix = params[0];
  31. if(params.length < 2) {
  32. return [prefix, {}];
  33. }
  34. var queryString = params[1];
  35. // 用来存储我们所有的参数
  36. var obj = {};
  37. // 如果没有传参,返回一个空对象
  38. if (!queryString) {
  39. return obj;
  40. }
  41. // stuff after # is not part of query string, so get rid of it
  42. queryString = queryString.split('#')[0];
  43. // 将参数分成数组
  44. var arr = queryString.split('&');
  45. for (var i = 0; i < arr.length; i++) {
  46. // 分离成key:value的形式
  47. var a = arr[i].split('=');
  48. // 将undefined标记为true
  49. var paramName = a[0];
  50. var paramValue = typeof (a[1]) === 'undefined' ? true : a[1];
  51. // 如果调用对象时要求大小写区分,可删除这两行代码
  52. paramName = paramName.toLowerCase();
  53. if (typeof paramValue === 'string') paramValue = paramValue.toLowerCase();
  54. // 如果paramName以方括号结束, e.g. colors[] or colors[2]
  55. if (paramName.match(/\[(\d+)?\]$/)) {
  56. // 如果paramName不存在,则创建key
  57. var key = paramName.replace(/\[(\d+)?\]/, '');
  58. if (!obj[key]) obj[key] = [];
  59. // 如果是索引数组 e.g. colors[2]
  60. if (paramName.match(/\[\d+\]$/)) {
  61. // 获取索引值并在对应的位置添加值
  62. var index = /\[(\d+)\]/.exec(paramName)[1];
  63. obj[key][index] = paramValue;
  64. } else {
  65. // 如果是其它的类型,也放到数组中
  66. obj[key].push(paramValue);
  67. }
  68. } else {
  69. // 处理字符串类型
  70. if (!obj[paramName]) {
  71. // 如果如果paramName不存在,则创建对象的属性
  72. obj[paramName] = paramValue;
  73. } else if (obj[paramName] && typeof obj[paramName] === 'string') {
  74. // 如果属性存在,并且是个字符串,那么就转换为数组
  75. obj[paramName] = [obj[paramName]];
  76. obj[paramName].push(paramValue);
  77. } else {
  78. // 如果是其它的类型,还是往数组里丢
  79. obj[paramName].push(paramValue);
  80. }
  81. }
  82. }
  83. return [prefix,obj];
  84. }
  85. module.exports = {
  86. getTypeSn: getTypeSn,
  87. formatTime: formatTime,
  88. parseAppjump: getUrlPrefixAndParams
  89. }