util.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. /**
  2. * 数据处理
  3. **/
  4. const utils = {
  5. //去空格
  6. trim: function(value) {
  7. return value.replace(/(^\s*)|(\s*$)/g, "");
  8. },
  9. regexAddressBean: function(address) {
  10. var regex = /^(北京市|天津市|重庆市|上海市|香港特别行政区|澳门特别行政区)/;
  11. var citystr;
  12. var addressBean = {
  13. REGION_PROVINCE: null,
  14. REGION_COUNTRY: null,
  15. REGION_CITY: null
  16. };
  17. var REGION_PROVINCE = regex.exec(address);
  18. if (REGION_PROVINCE) {
  19. addressBean.REGION_PROVINCE = REGION_PROVINCE[1];
  20. citystr = address;
  21. }
  22. if (!addressBean.REGION_PROVINCE) {
  23. regex = /^(.*?(省|自治区))(.*?)$/;
  24. REGION_PROVINCE = regex.exec(address);
  25. addressBean.REGION_PROVINCE = REGION_PROVINCE[1];
  26. citystr = REGION_PROVINCE[3];
  27. }
  28. regex = /^(.*?[市]|.*?地区|.*?特别行政区)(.*?[市区县])(.*?)$/g;
  29. var cityarray;
  30. cityarray = regex.exec(citystr);
  31. if (cityarray) {
  32. addressBean.REGION_CITY = cityarray[1];
  33. addressBean.REGION_COUNTRY = cityarray[2];
  34. } else {
  35. regex = /^(.*?[市]|.*?地区|.*?特别行政区)/;
  36. cityarray = regex.exec(citystr);
  37. addressBean.REGION_CITY = cityarray[1];
  38. }
  39. return addressBean;
  40. },
  41. //内容替换
  42. replaceAll: function(text, repstr, newstr) {
  43. return text.replace(new RegExp(repstr, "gm"), newstr);
  44. },
  45. //格式化手机号码
  46. formatNumber: function(num) {
  47. return num.length === 11 ? num.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2') : num;
  48. },
  49. //金额格式化
  50. rmoney: function(money) {
  51. return parseFloat(money).toFixed(2).toString().split('').reverse().join('').replace(/(\d{3})/g, '$1,')
  52. .replace(
  53. /\,$/, '').split('').reverse().join('');
  54. },
  55. //日期格式化
  56. formatDate: function(formatStr, fdate) {
  57. if (fdate) {
  58. if (~fdate.indexOf('.')) {
  59. fdate = fdate.substring(0, fdate.indexOf('.'));
  60. }
  61. fdate = fdate.toString().replace('T', ' ').replace(/\-/g, '/');
  62. var fTime, fStr = 'ymdhis';
  63. if (!formatStr)
  64. formatStr = "y-m-d h:i:s";
  65. if (fdate)
  66. fTime = new Date(fdate);
  67. else
  68. fTime = new Date();
  69. var month = fTime.getMonth() + 1;
  70. var day = fTime.getDate();
  71. var hours = fTime.getHours();
  72. var minu = fTime.getMinutes();
  73. var second = fTime.getSeconds();
  74. month = month < 10 ? '0' + month : month;
  75. day = day < 10 ? '0' + day : day;
  76. hours = hours < 10 ? ('0' + hours) : hours;
  77. minu = minu < 10 ? '0' + minu : minu;
  78. second = second < 10 ? '0' + second : second;
  79. var formatArr = [
  80. fTime.getFullYear().toString(),
  81. month.toString(),
  82. day.toString(),
  83. hours.toString(),
  84. minu.toString(),
  85. second.toString()
  86. ]
  87. for (var i = 0; i < formatArr.length; i++) {
  88. formatStr = formatStr.replace(fStr.charAt(i), formatArr[i]);
  89. }
  90. return formatStr;
  91. } else {
  92. return "";
  93. }
  94. },
  95. rgbToHex: function(r, g, b) {
  96. return "#" + utils.toHex(r) + utils.toHex(g) + utils.toHex(b)
  97. },
  98. toHex: function(n) {
  99. n = parseInt(n, 10);
  100. if (isNaN(n)) return "00";
  101. n = Math.max(0, Math.min(n, 255));
  102. return "0123456789ABCDEF".charAt((n - n % 16) / 16) +
  103. "0123456789ABCDEF".charAt(n % 16);
  104. },
  105. hexToRgb(hex) {
  106. let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
  107. return result ? {
  108. r: parseInt(result[1], 16),
  109. g: parseInt(result[2], 16),
  110. b: parseInt(result[3], 16)
  111. } : null;
  112. }
  113. }
  114. module.exports = {
  115. trim: utils.trim,
  116. regexAddressBean: utils.regexAddressBean,
  117. replaceAll: utils.replaceAll,
  118. formatNumber: utils.formatNumber,
  119. rmoney: utils.rmoney,
  120. formatDate: utils.formatDate,
  121. rgbToHex: utils.rgbToHex,
  122. hexToRgb: utils.hexToRgb
  123. }