util.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. /**
  15. * 随机生成指定长度的字符串
  16. * @param length
  17. * @returns {string}
  18. */
  19. function randomString(length = 32) {
  20. const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
  21. const maxPos = chars.length
  22. let _string = ''
  23. for (let i = 0; i < length; i++) {
  24. _string += chars.charAt(Math.floor(Math.random() * maxPos))
  25. }
  26. return _string
  27. }
  28. function guid() {
  29. return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
  30. var r = Math.random() * 16 | 0,
  31. v = c == 'x' ? r : (r & 0x3 | 0x8);
  32. return v.toString(16);
  33. });
  34. }
  35. function findChildren(array, path) {
  36. var paths = path.replace(/^(\s|,)+|(\s|,)+$/g, '').split(',')
  37. if (paths.length === 0) return
  38. if (paths.length === 1) return array.filter(n => n.id === parseInt(paths[0]))[0]
  39. else {
  40. var child = array.filter(n => n.id === parseInt(paths[0]))[0].children
  41. var subpaths = paths
  42. subpaths.shift()
  43. return findChildren(child, subpaths.join(','))
  44. }
  45. }
  46. /*用正则表达式实现html转码*/
  47. function htmlEncodeByRegExp(str) {
  48. var s = "";
  49. if (str.length == 0) return "";
  50. s = str.replace(/&/g, "&amp;");
  51. s = s.replace(/</g, "&lt;");
  52. s = s.replace(/>/g, "&gt;");
  53. s = s.replace(/ /g, "&nbsp;");
  54. s = s.replace(/\'/g, "&#39;");
  55. s = s.replace(/\"/g, "&quot;");
  56. return s;
  57. }
  58. /*用正则表达式实现html解码*/
  59. function htmlDecodeByRegExp(str) {
  60. var s = "";
  61. if (str.length == 0) return "";
  62. s = str.replace(/&amp;/g, "&");
  63. s = s.replace(/&lt;/g, "<");
  64. s = s.replace(/&gt;/g, ">");
  65. s = s.replace(/&nbsp;/g, " ");
  66. s = s.replace(/&#39;/g, "\'");
  67. s = s.replace(/&quot;/g, "\"");
  68. return s;
  69. }
  70. module.exports = {
  71. formatTime: formatTime,
  72. randomString: randomString,
  73. guid: guid,
  74. findChildren: findChildren,
  75. htmlEncodeByRegExp: htmlEncodeByRegExp,
  76. htmlDecodeByRegExp: htmlDecodeByRegExp
  77. }