petite-utils
Version:
A collection of small util function in JavaScript.
3 lines (2 loc) • 6.51 kB
JavaScript
function r(r){return Object.prototype.toString.call(r).slice(8,-1).toLowerCase()}function t(r){return"object"==typeof r&&null!==r}function n(r){return null===r||"boolean"==typeof r||"number"==typeof r||"bigint"==typeof r||"string"==typeof r||"symbol"==typeof r||void 0===r}function e(t){return"error"===r(t)||t instanceof Error}function o(t){return"date"===r(t)}function i(t){return Array.isArray?Array.isArray(t):"array"===r(t)}function u(r){return"boolean"==typeof r}function a(r){return null===r}function f(r){return null==r}function c(r){return"number"==typeof r?0*r==0:"bigint"==typeof r}function l(r){return"number"==typeof r?0*r==0:"bigint"==typeof r||!(!s(r)||""===r.trim())&&(Number.isFinite?Number.isFinite(+r):isFinite(+r))}function s(r){return"string"==typeof r}function d(r){return""===r}function p(r){return"symbol"==typeof r}function m(r){return void 0===r}function v(t){return"regexp"===r(t)}function y(r){return!r}function x(r){return!r&&0!==r}function h(r){return!!r}function b(t){return!f(t)&&!!t&&("function"===r(t)||"function"==typeof t||t instanceof Function)}function g(r){if(d(r))return!0;if(Array.isArray(r))return 0===r.length;if(f(r))return!0;if(t(r)){for(var n in r)if(r.hasOwnProperty(n))return!1;return!0}return!1}function w(r){if(f(r)||d(r))return[!1,"身份证号不能为空"];if(!c(r)&&!s(r))return[!1,"身份证号必须是数字或者字符串"];var t="",n=!0;if(15!==(r=r.toString()).length&&18!==r.length)return[!1,"身份证号长度错误, 必须是15位或者18位"];if(!/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/i.test(r))return[!1,"身份证号格式错误"];if(!{11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "}[r.slice(0,2)])return[!1,"地址编码错误"];if(18==r.length){for(var e=r.split(""),o=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2],i=0,u=0;u<17;u++)i+=+e[u]*o[u];[1,0,"X",9,8,7,6,5,4,3,2][i%11]!=e[17]&&(t="校验位错误,结尾是字母请注意大小写",n=!1)}return[n,t]}function A(r){return/^1[3-9]\d{9}$/.test(r)}function M(r,t){if(r.length!==t.length)return!1;for(var n=0;n<r.length;n++)if(r[n]!==t[n])return!1;return!0}function T(r){var t;try{t=new URL(r)}catch(r){return!1}return"http:"===t.protocol||"https:"===t.protocol}function $(r,t){return(r%t+t)%t}function E(r,t){return r-t*Math.trunc(r/t)}function S(r,t){if(!Array.isArray(r))throw new Error("第一个参数必须是一个一维数组");if(!c(t))throw new Error("第二个参数必须是一个数字");for(var n=[],e=0;e<r.length;e+=t)n.push(r.slice(e,e+t));return n}var j=function(t){var n,e=r(t);if(!["object","array"].includes(e))return t;if("array"===e){n=[];for(var o=0,i=t.length;o<i;)n[o]=j(t[o]),o++}else if("object"===e)for(var u in n={},t)Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=j(t[u]));return n};function P(r){return navigator.clipboard&&navigator.permissions?navigator.clipboard.writeText(r).then(function(){return Promise.resolve(!0)}).catch(function(){return Promise.resolve(!1)}):new Promise(function(t){var n=document.createElement("textArea");n.value=r,n.style.width="0px",n.style.position="fixed",n.style.left="-999px",n.style.top="10px",n.setAttribute("readonly","readonly"),document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n),t(!0)})}function C(r,t,n){var e;return void 0===t&&(t=200),void 0===n&&(n=!1),function(){var o=[].slice.call(arguments);n&&!e&&r.apply(void 0,o),e&&clearTimeout(e),e=setTimeout(function(){r.apply(void 0,o)},t)}}function D(r){if(!c(r)&&!s(r)||""===r)return"0";if(r=r.toString(),/[^0-9\.]/.test(r))return"0";if(0==+r)return"0.00";r=(r=((r=r.replace(/^(\d*)$/,"$1."))+"00").replace(/(\d*\.\d\d)\d*/,"$1")).replace(".",",");for(var t=/(\d)(\d{3},)/;t.test(r);)r=r.replace(t,"$1,$2");return r.replace(/,(\d\d)$/,".$1")}function F(r){void 0===r&&(r=6);for(var t=[],n="",e=0;e<r;e++)t[e]=0===e?+"1234566789"[Math.ceil(9*Math.random())]:Number.parseInt(10*Math.random()+""),n+=String(t[e]);return Number.parseInt(n)}function N(r,t,n){if(void 0===r&&(r=7),void 0===t&&(t=36),void 0===n&&(n=!0),!c(+r)||!c(+t)||!u(n))return"min, max should be number, startLetter should be boolean";if(+r<0||+t<0)return"min, max should be positive number";if(r>t)return"min should be less than max";r=+r,t=+t;for(var e="0123456789",o="abcdefghijklmnopqrstuvwxyz",i="ABCDEFGHIJKLMNOPQRSTUVWXYZ",a=e+o+i,f=o+i,l="",s=Math.floor(Math.random()*(t-r))+r,d=0;d<s;d++)l+=a[Math.floor(62*Math.random())];return n&&/^[0-9]/.test(l)&&(l=f[Math.floor(52*Math.random())]+l.slice(1)),!n&&/^[a-zA-Z]/.test(l)&&(l=e[Math.floor(10*Math.random())]+l.slice(1)),l}function O(r){return Array.isArray(r)?Array.from(new Set(r)):[]}function L(r,t,n){var e=void 0===t?{}:t,o=e.interval,i=void 0===o?1e3:o,u=e.immediate,a=void 0!==u&&u;if(!b(r))throw new Error("first argument must be a function");if(!c(i)||i<=0)throw new Error("interval must be a positive number");var f,l=function(){s=!0,clearTimeout(p),clearTimeout(f)},s=!1,d=0;a&&(++d,r(d,l,n));var p=setTimeout(function t(){s||(++d,r(d,l,n),f=setTimeout(t,i))},i);return l}function I(r,t,n){void 0===t&&(t=200),void 0===n&&(n=!1);var e=Date.now(),o=null,i=!1;return function(){var u=[].slice.call(arguments),a=Date.now();n&&!i&&(r.apply(void 0,u),e=a,i=!0),clearTimeout(o),a-e>=t?(r.apply(void 0,u),e=a):o=setTimeout(function(){r.apply(void 0,u),e=Date.now()},t-(a-e))}}function X(){var r=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var n=(r+16*Math.random())%16|0;return r=Math.floor(r/16),("x"===t?n:7&n|8).toString(16)})}export{S as chunk,j as clone,P as copy,C as debounce,w as identityCodeValid,i as isArray,u as isBoolean,A as isChinesePhone,o as isDate,g as isEmpty,d as isEmptyStr,M as isEqualArray,e as isError,y as isFalsy,x as isFalsyNon0,b as isFunction,T as isHttpUrl,a as isNull,f as isNullish,c as isNumber,l as isNumerical,t as isObject,n as isPrimitive,v as isRegExp,s as isString,p as isSymbol,h as isTruthy,m as isUndefined,$ as modulo,D as normalizeMoney,F as randomNum,N as randomStr,E as remainder,O as removeRepeat,L as repeatRun,I as throttle,r as type,X as uuid};
//# sourceMappingURL=index.js.map