util.js 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /* eslint-disable */
  2. const toolClass = {
  3. dateFormat: (timestamp, fmt) => { // 时间格式转换
  4. if (timestamp) {
  5. if (!fmt) {
  6. fmt = 'yyyy-MM-dd hh:mm'
  7. }
  8. let date = new Date(timestamp)
  9. var o = {
  10. 'M+': date.getMonth() + 1,
  11. 'd+': date.getDate(),
  12. 'h+': date.getHours(),
  13. 'm+': date.getMinutes(),
  14. 's+': date.getSeconds(),
  15. 'q+': Math.floor((date.getMonth() + 3) / 3),
  16. 'S': date.getMilliseconds()
  17. }
  18. if (/(y+)/.test(fmt)) {
  19. fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  20. }
  21. for (var k in o) {
  22. if (new RegExp('(' + k + ')').test(fmt)) {
  23. fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
  24. }
  25. }
  26. return fmt
  27. } else {
  28. return ''
  29. }
  30. },
  31. JsBridge: { // IOS/Android原生交互
  32. init: function (callback) { // 初始化
  33. var u = navigator.userAgent
  34. var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
  35. if (!isiOS) {
  36. if (window.WebViewJavascriptBridge) {
  37. callback(WebViewJavascriptBridge)
  38. } else {
  39. document.addEventListener(
  40. 'WebViewJavascriptBridgeReady',
  41. function () {
  42. callback(WebViewJavascriptBridge)
  43. },
  44. false
  45. )
  46. }
  47. } else {
  48. if (window.WebViewJavascriptBridge) return callback(WebViewJavascriptBridge)
  49. if (window.WVJBCallbacks) return window.WVJBCallbacks.push(callback)
  50. window.WVJBCallbacks = [callback]
  51. var WVJBIframe = document.createElement('iframe')
  52. WVJBIframe.style.display = 'none'
  53. WVJBIframe.src = 'https://__bridge_loaded__'
  54. document.documentElement.appendChild(WVJBIframe)
  55. setTimeout(function () { document.documentElement.removeChild(WVJBIframe) }, 0)
  56. }
  57. },
  58. first: function () { // 建立第一次链接
  59. var u = navigator.userAgent
  60. var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
  61. if (!isiOS) {
  62. var _this = this
  63. _this.init(function (bridge) {
  64. bridge.init(function (message, responseCallback) {
  65. responseCallback(data)
  66. })
  67. })
  68. }
  69. },
  70. registerHandler: function (name, fun) { // app通知h5方法
  71. var _this = this
  72. _this.init(function (bridge) {
  73. bridge.registerHandler(name, fun)
  74. })
  75. },
  76. callHandler: function (name, data, fun) { // h5通知app方法
  77. var _this = this
  78. _this.init(function (bridge) {
  79. bridge.callHandler(name, data, fun)
  80. })
  81. }
  82. },
  83. returnDoubleNum (num) { // 转化双位数
  84. return num > 9 ? num : ('0' + num)
  85. },
  86. checkPhoneNum (num) { // 校验手机号
  87. var myreg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/
  88. return !!myreg.test(num)
  89. },
  90. checkEmail (num) { // 校验邮箱
  91. var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/
  92. return !!myreg.test(num)
  93. }
  94. }
  95. export default toolClass