seasun-util
Version:
JavaScript 软件开发工具包
2 lines (1 loc) • 2.96 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Seasun={})}(this,(function(t){"use strict";function e(t){return Object.prototype.toString.call(t).slice(8,-1)}t.debounce=function(t,e){var r=null;return function(){for(var n=this,i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];r&&window.clearTimeout(r),r=window.setTimeout((function(){t.apply(n,i)}),e)}},t.dfs=function t(e,r,n,i){if(void 0===n&&(n=1),void 0===i&&(i="children"),!e||!Array.isArray(e)||0===e.length)return!0;for(var o=0;o<e.length;o++){var a=e[o];if(!r(a,n))return!1;var u=null==a?void 0:a[i];if(u&&Array.isArray(u)&&u.length>0)if(!t(u,r,n+1,i))return!1}return!0},t.formatTime=function(t,e){var r;void 0===e&&(e="yyyy-MM-dd hh:mm:ss");var n=new Date(t),i={"y+":n.getFullYear().toString(),"M+":(n.getMonth()+1).toString(),"d+":n.getDate().toString(),"h+":n.getHours().toString(),"m+":n.getMinutes().toString(),"s+":n.getSeconds().toString()};for(var o in i)(r=new RegExp("("+o+")").exec(e))&&(e=e.replace(r[1],1===r[1].length?i[o]:i[o].padStart(r[1].length,"0")));return e},t.formatTimePass=function(t){var e=Date.parse((new Date).toString())-("number"==typeof t?t:Date.parse(t.toString())),r=parseInt((e/864e5).toString()),n=parseInt((e/36e5).toString()),i=parseInt((e/6e4).toString()),o=parseInt((r/30).toString()),a=parseInt((o/12).toString());return a?a+"年前":o?o+"个月前":r?r+"天前":n?n+"小时前":i?i+"分钟前":"刚刚"},t.formatUrlWithParams=function(t,e,r){if(!t)return"";var n=new RegExp(/\$\{(\w+)\}/,"g"),i=r||n;return t.replace(i,(function(t,r){return void 0!==e[r]?e[r]:t}))},t.generateRandomId=function(t){void 0===t&&(t=8);for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r="",n=0;n<t;n++)r+=e.charAt(Math.floor(62*Math.random()));return r},t.getType=e,t.hasKeys=function(t,e){if(t instanceof Object){"string"==typeof e&&(e=[e]);for(var r=0;r<e.length;r++)if(!Object.prototype.hasOwnProperty.call(t,e[r]))return!1}return!0},t.isArray=function(t){return"Array"===e(t)},t.isValidDateTime=function(t){return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[+-]\d{2}:\d{2}|Z)$/.test(t)},t.isValidTimestamp=function(t){if(!t)return!1;var e="number"==typeof t?t.toString():t;if(!/^(-?\d{10}$)|(-?\d{13}$)/.test(e))return!1;var r=parseInt(e);if(isNaN(r))return!1;if(r<Number.MIN_SAFE_INTEGER||r>Number.MAX_SAFE_INTEGER)return!1;if(r<0)return!1;var n=new Date(r),i=!isNaN(n.getTime()),o=10===e.length?1e3*r:r,a=o>=Date.UTC(1970,0,1)&&o<=Date.UTC(2038,0,19);return i&&a},t.sleep=function(t){return new Promise((function(e){return setTimeout(e,t)}))},t.throttle=function(t,e){var r=null,n=0;return function(){for(var i=this,o=[],a=0;a<arguments.length;a++)o[a]=arguments[a];var u=Date.now();n&&u<n+e?(r&&window.clearTimeout(r),r=window.setTimeout((function(){n=u,t.apply(i,o)}),e)):(n=u,t.apply(this,o))}}}));