first commit

This commit is contained in:
PC-202306242200\Administrator
2026-03-28 23:09:02 +08:00
commit dac42e3b0c
3512 changed files with 181637 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
"use strict";
function colorGradient(startColor = "rgb(0, 0, 0)", endColor = "rgb(255, 255, 255)", step = 10) {
const startRGB = hexToRgb(startColor, false);
const startR = startRGB[0];
const startG = startRGB[1];
const startB = startRGB[2];
const endRGB = hexToRgb(endColor, false);
const endR = endRGB[0];
const endG = endRGB[1];
const endB = endRGB[2];
const sR = (endR - startR) / step;
const sG = (endG - startG) / step;
const sB = (endB - startB) / step;
const colorArr = [];
for (let i = 0; i < step; i++) {
let hex = rgbToHex(`rgb(${Math.round(sR * i + startR)},${Math.round(sG * i + startG)},${Math.round(sB * i + startB)})`);
if (i === 0)
hex = rgbToHex(startColor);
if (i === step - 1)
hex = rgbToHex(endColor);
colorArr.push(hex);
}
return colorArr;
}
function hexToRgb(sColor, str = true) {
const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
sColor = String(sColor).toLowerCase();
if (sColor && reg.test(sColor)) {
if (sColor.length === 4) {
let sColorNew = "#";
for (let i = 1; i < 4; i += 1) {
sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));
}
sColor = sColorNew;
}
const sColorChange = [];
for (let i = 1; i < 7; i += 2) {
sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`));
}
if (!str) {
return sColorChange;
}
return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`;
}
if (/^(rgb|RGB)/.test(sColor)) {
const arr = sColor.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");
return arr.map((val) => Number(val));
}
return sColor;
}
function rgbToHex(rgb) {
const _this = rgb;
const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
if (/^(rgb|RGB)/.test(_this)) {
const aColor = _this.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");
let strHex = "#";
for (let i = 0; i < aColor.length; i++) {
let hex = Number(aColor[i]).toString(16);
hex = String(hex).length == 1 ? `${0}${hex}` : hex;
if (hex === "0") {
hex += hex;
}
strHex += hex;
}
if (strHex.length !== 7) {
strHex = _this;
}
return strHex;
}
if (reg.test(_this)) {
const aNum = _this.replace(/#/, "").split("");
if (aNum.length === 6) {
return _this;
}
if (aNum.length === 3) {
let numHex = "#";
for (let i = 0; i < aNum.length; i += 1) {
numHex += aNum[i] + aNum[i];
}
return numHex;
}
} else {
return _this;
}
}
function colorToRgba(color, alpha) {
color = rgbToHex(color);
const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
let sColor = String(color).toLowerCase();
if (sColor && reg.test(sColor)) {
if (sColor.length === 4) {
let sColorNew = "#";
for (let i = 1; i < 4; i += 1) {
sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));
}
sColor = sColorNew;
}
const sColorChange = [];
for (let i = 1; i < 7; i += 2) {
sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`));
}
return `rgba(${sColorChange.join(",")},${alpha})`;
}
return sColor;
}
const colorGradient$1 = {
colorGradient,
hexToRgb,
rgbToHex,
colorToRgba
};
exports.colorGradient = colorGradient$1;

View File

@@ -0,0 +1,19 @@
"use strict";
let timeout = null;
function debounce(func, wait = 500, immediate = false) {
if (timeout !== null)
clearTimeout(timeout);
if (immediate) {
const callNow = !timeout;
timeout = setTimeout(() => {
timeout = null;
}, wait);
if (callNow)
typeof func === "function" && func();
} else {
timeout = setTimeout(() => {
typeof func === "function" && func();
}, wait);
}
}
exports.debounce = debounce;

View File

@@ -0,0 +1,63 @@
"use strict";
function strip(num, precision = 15) {
return +parseFloat(Number(num).toPrecision(precision));
}
function digitLength(num) {
const eSplit = num.toString().split(/[eE]/);
const len = (eSplit[0].split(".")[1] || "").length - +(eSplit[1] || 0);
return len > 0 ? len : 0;
}
function float2Fixed(num) {
if (num.toString().indexOf("e") === -1) {
return Number(num.toString().replace(".", ""));
}
const dLen = digitLength(num);
return dLen > 0 ? strip(Number(num) * Math.pow(10, dLen)) : Number(num);
}
function checkBoundary(num) {
{
if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) {
console.warn(`${num} 超出了精度限制,结果可能不正确`);
}
}
}
function iteratorOperation(arr, operation) {
const [num1, num2, ...others] = arr;
let res = operation(num1, num2);
others.forEach((num) => {
res = operation(res, num);
});
return res;
}
function times(...nums) {
if (nums.length > 2) {
return iteratorOperation(nums, times);
}
const [num1, num2] = nums;
const num1Changed = float2Fixed(num1);
const num2Changed = float2Fixed(num2);
const baseNum = digitLength(num1) + digitLength(num2);
const leftValue = num1Changed * num2Changed;
checkBoundary(leftValue);
return leftValue / Math.pow(10, baseNum);
}
function divide(...nums) {
if (nums.length > 2) {
return iteratorOperation(nums, divide);
}
const [num1, num2] = nums;
const num1Changed = float2Fixed(num1);
const num2Changed = float2Fixed(num2);
checkBoundary(num1Changed);
checkBoundary(num2Changed);
return times(num1Changed / num2Changed, strip(Math.pow(10, digitLength(num2) - digitLength(num1))));
}
function round(num, ratio) {
const base = Math.pow(10, ratio);
let result = divide(Math.round(Math.abs(times(num, base))), base);
if (num < 0 && result !== 0) {
result = times(result, -1);
}
return result;
}
exports.round = round;

View File

@@ -0,0 +1,502 @@
"use strict";
const common_vendor = require("../../../../common/vendor.js");
const uni_modules_uviewPlus_libs_function_test = require("./test.js");
const uni_modules_uviewPlus_libs_function_digit = require("./digit.js");
const uni_modules_uviewPlus_libs_config_config = require("../config/config.js");
function range(min = 0, max = 0, value = 0) {
return Math.max(min, Math.min(max, Number(value)));
}
function getPx(value, unit = false) {
if (uni_modules_uviewPlus_libs_function_test.number(value)) {
return unit ? `${value}px` : Number(value);
}
if (/(rpx|upx)$/.test(value)) {
return unit ? `${common_vendor.index.upx2px(parseInt(value))}px` : Number(common_vendor.index.upx2px(parseInt(value)));
}
return unit ? `${parseInt(value)}px` : parseInt(value);
}
function sleep(value = 30) {
return new Promise((resolve) => {
setTimeout(() => {
resolve();
}, value);
});
}
function os() {
return common_vendor.index.getSystemInfoSync().platform.toLowerCase();
}
function sys() {
return common_vendor.index.getSystemInfoSync();
}
function random(min, max) {
if (min >= 0 && max > 0 && max >= min) {
const gab = max - min + 1;
return Math.floor(Math.random() * gab + min);
}
return 0;
}
function guid(len = 32, firstU = true, radix = null) {
const chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("");
const uuid = [];
radix = radix || chars.length;
if (len) {
for (let i = 0; i < len; i++)
uuid[i] = chars[0 | Math.random() * radix];
} else {
let r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = "-";
uuid[14] = "4";
for (let i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[i == 19 ? r & 3 | 8 : r];
}
}
}
if (firstU) {
uuid.shift();
return `u${uuid.join("")}`;
}
return uuid.join("");
}
function $parent(name = void 0) {
let parent = this.$parent;
while (parent) {
if (parent.$options && parent.$options.name !== name) {
parent = parent.$parent;
} else {
return parent;
}
}
return false;
}
function addStyle(customStyle, target = "object") {
if (uni_modules_uviewPlus_libs_function_test.empty(customStyle) || typeof customStyle === "object" && target === "object" || target === "string" && typeof customStyle === "string") {
return customStyle;
}
if (target === "object") {
customStyle = trim(customStyle);
const styleArray = customStyle.split(";");
const style = {};
for (let i = 0; i < styleArray.length; i++) {
if (styleArray[i]) {
const item = styleArray[i].split(":");
style[trim(item[0])] = trim(item[1]);
}
}
return style;
}
let string = "";
if (typeof customStyle === "object") {
customStyle.forEach((val, i) => {
const key = i.replace(/([A-Z])/g, "-$1").toLowerCase();
string += `${key}:${val};`;
});
}
return trim(string);
}
function addUnit(value = "auto", unit = "") {
if (!unit) {
unit = uni_modules_uviewPlus_libs_config_config.config.unit || "px";
}
value = String(value);
return uni_modules_uviewPlus_libs_function_test.number(value) ? `${value}${unit}` : value;
}
function deepClone(obj) {
if ([null, void 0, NaN, false].includes(obj))
return obj;
if (typeof obj !== "object" && typeof obj !== "function") {
return obj;
}
const o = uni_modules_uviewPlus_libs_function_test.array(obj) ? [] : {};
for (const i in obj) {
if (obj.hasOwnProperty(i)) {
o[i] = typeof obj[i] === "object" ? deepClone(obj[i]) : obj[i];
}
}
return o;
}
function deepMerge(targetOrigin = {}, source = {}) {
let target = deepClone(targetOrigin);
if (typeof target !== "object" || typeof source !== "object")
return false;
for (const prop in source) {
if (!source.hasOwnProperty(prop))
continue;
if (prop in target) {
if (source[prop] == null) {
target[prop] = source[prop];
} else if (typeof target[prop] !== "object") {
target[prop] = source[prop];
} else if (typeof source[prop] !== "object") {
target[prop] = source[prop];
} else if (target[prop].concat && source[prop].concat) {
target[prop] = target[prop].concat(source[prop]);
} else {
target[prop] = deepMerge(target[prop], source[prop]);
}
} else {
target[prop] = source[prop];
}
}
return target;
}
function shallowMerge(target, source = {}) {
if (typeof target !== "object" || typeof source !== "object")
return false;
for (const prop in source) {
if (!source.hasOwnProperty(prop))
continue;
if (prop in target) {
if (source[prop] == null) {
target[prop] = source[prop];
} else if (typeof target[prop] !== "object") {
target[prop] = source[prop];
} else if (typeof source[prop] !== "object") {
target[prop] = source[prop];
} else if (target[prop].concat && source[prop].concat) {
target[prop] = target[prop].concat(source[prop]);
} else {
target[prop] = shallowMerge(target[prop], source[prop]);
}
} else {
target[prop] = source[prop];
}
}
return target;
}
function error(err) {
{
console.error(`uView提示${err}`);
}
}
function randomArray(array = []) {
return array.sort(() => Math.random() - 0.5);
}
if (!String.prototype.padStart) {
String.prototype.padStart = function(maxLength, fillString = " ") {
if (Object.prototype.toString.call(fillString) !== "[object String]") {
throw new TypeError(
"fillString must be String"
);
}
const str = this;
if (str.length >= maxLength)
return String(str);
const fillLength = maxLength - str.length;
let times = Math.ceil(fillLength / fillString.length);
while (times >>= 1) {
fillString += fillString;
if (times === 1) {
fillString += fillString;
}
}
return fillString.slice(0, fillLength) + str;
};
}
function timeFormat(dateTime = null, formatStr = "yyyy-mm-dd") {
let date;
if (!dateTime) {
date = /* @__PURE__ */ new Date();
} else if (/^\d{10}$/.test(dateTime.toString().trim())) {
date = new Date(dateTime * 1e3);
} else if (typeof dateTime === "string" && /^\d+$/.test(dateTime.trim())) {
date = new Date(Number(dateTime));
} else {
date = new Date(
typeof dateTime === "string" ? dateTime.replace(/-/g, "/") : dateTime
);
}
const timeSource = {
"y": date.getFullYear().toString(),
// 年
"m": (date.getMonth() + 1).toString().padStart(2, "0"),
// 月
"d": date.getDate().toString().padStart(2, "0"),
// 日
"h": date.getHours().toString().padStart(2, "0"),
// 时
"M": date.getMinutes().toString().padStart(2, "0"),
// 分
"s": date.getSeconds().toString().padStart(2, "0")
// 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
};
for (const key in timeSource) {
const [ret] = new RegExp(`${key}+`).exec(formatStr) || [];
if (ret) {
const beginIndex = key === "y" && ret.length === 2 ? 2 : 0;
formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex));
}
}
return formatStr;
}
function timeFrom(timestamp = null, format = "yyyy-mm-dd") {
if (timestamp == null)
timestamp = Number(/* @__PURE__ */ new Date());
timestamp = parseInt(timestamp);
if (timestamp.toString().length == 10)
timestamp *= 1e3;
let timer = (/* @__PURE__ */ new Date()).getTime() - timestamp;
timer = parseInt(timer / 1e3);
let tips = "";
switch (true) {
case timer < 300:
tips = "刚刚";
break;
case (timer >= 300 && timer < 3600):
tips = `${parseInt(timer / 60)}分钟前`;
break;
case (timer >= 3600 && timer < 86400):
tips = `${parseInt(timer / 3600)}小时前`;
break;
case (timer >= 86400 && timer < 2592e3):
tips = `${parseInt(timer / 86400)}天前`;
break;
default:
if (format === false) {
if (timer >= 2592e3 && timer < 365 * 86400) {
tips = `${parseInt(timer / (86400 * 30))}个月前`;
} else {
tips = `${parseInt(timer / (86400 * 365))}年前`;
}
} else {
tips = timeFormat(timestamp, format);
}
}
return tips;
}
function trim(str, pos = "both") {
str = String(str);
if (pos == "both") {
return str.replace(/^\s+|\s+$/g, "");
}
if (pos == "left") {
return str.replace(/^\s*/, "");
}
if (pos == "right") {
return str.replace(/(\s*$)/g, "");
}
if (pos == "all") {
return str.replace(/\s+/g, "");
}
return str;
}
function queryParams(data = {}, isPrefix = true, arrayFormat = "brackets") {
const prefix = isPrefix ? "?" : "";
const _result = [];
if (["indices", "brackets", "repeat", "comma"].indexOf(arrayFormat) == -1)
arrayFormat = "brackets";
for (const key in data) {
const value = data[key];
if (["", void 0, null].indexOf(value) >= 0) {
continue;
}
if (value.constructor === Array) {
switch (arrayFormat) {
case "indices":
for (let i = 0; i < value.length; i++) {
_result.push(`${key}[${i}]=${value[i]}`);
}
break;
case "brackets":
value.forEach((_value) => {
_result.push(`${key}[]=${_value}`);
});
break;
case "repeat":
value.forEach((_value) => {
_result.push(`${key}=${_value}`);
});
break;
case "comma":
let commaStr = "";
value.forEach((_value) => {
commaStr += (commaStr ? "," : "") + _value;
});
_result.push(`${key}=${commaStr}`);
break;
default:
value.forEach((_value) => {
_result.push(`${key}[]=${_value}`);
});
}
} else {
_result.push(`${key}=${value}`);
}
}
return _result.length ? prefix + _result.join("&") : "";
}
function toast(title, duration = 2e3) {
common_vendor.index.showToast({
title: String(title),
icon: "none",
duration
});
}
function type2icon(type = "success", fill = false) {
if (["primary", "info", "error", "warning", "success"].indexOf(type) == -1)
type = "success";
let iconName = "";
switch (type) {
case "primary":
iconName = "info-circle";
break;
case "info":
iconName = "info-circle";
break;
case "error":
iconName = "close-circle";
break;
case "warning":
iconName = "error-circle";
break;
case "success":
iconName = "checkmark-circle";
break;
default:
iconName = "checkmark-circle";
}
if (fill)
iconName += "-fill";
return iconName;
}
function priceFormat(number, decimals = 0, decimalPoint = ".", thousandsSeparator = ",") {
number = `${number}`.replace(/[^0-9+-Ee.]/g, "");
const n = !isFinite(+number) ? 0 : +number;
const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals);
const sep = typeof thousandsSeparator === "undefined" ? "," : thousandsSeparator;
const dec = typeof decimalPoint === "undefined" ? "." : decimalPoint;
let s = "";
s = (prec ? uni_modules_uviewPlus_libs_function_digit.round(n, prec) + "" : `${Math.round(n)}`).split(".");
const re = /(-?\d+)(\d{3})/;
while (re.test(s[0])) {
s[0] = s[0].replace(re, `$1${sep}$2`);
}
if ((s[1] || "").length < prec) {
s[1] = s[1] || "";
s[1] += new Array(prec - s[1].length + 1).join("0");
}
return s.join(dec);
}
function getDuration(value, unit = true) {
const valueNum = parseInt(value);
if (unit) {
if (/s$/.test(value))
return value;
return value > 30 ? `${value}ms` : `${value}s`;
}
if (/ms$/.test(value))
return valueNum;
if (/s$/.test(value))
return valueNum > 30 ? valueNum : valueNum * 1e3;
return valueNum;
}
function padZero(value) {
return `00${value}`.slice(-2);
}
function formValidate(instance, event) {
const formItem = $parent.call(instance, "u-form-item");
const form = $parent.call(instance, "u-form");
if (formItem && form) {
form.validateField(formItem.prop, () => {
}, event);
}
}
function getProperty(obj, key) {
if (typeof obj !== "object" || null == obj) {
return "";
}
if (typeof key !== "string" || key === "") {
return "";
}
if (key.indexOf(".") !== -1) {
const keys = key.split(".");
let firstObj = obj[keys[0]] || {};
for (let i = 1; i < keys.length; i++) {
if (firstObj) {
firstObj = firstObj[keys[i]];
}
}
return firstObj;
}
return obj[key];
}
function setProperty(obj, key, value) {
if (typeof obj !== "object" || null == obj) {
return;
}
const inFn = function(_obj, keys, v) {
if (keys.length === 1) {
_obj[keys[0]] = v;
return;
}
while (keys.length > 1) {
const k = keys[0];
if (!_obj[k] || typeof _obj[k] !== "object") {
_obj[k] = {};
}
keys.shift();
inFn(_obj[k], keys, v);
}
};
if (typeof key !== "string" || key === "")
;
else if (key.indexOf(".") !== -1) {
const keys = key.split(".");
inFn(obj, keys, value);
} else {
obj[key] = value;
}
}
function page() {
const pages2 = getCurrentPages();
return `/${pages2[pages2.length - 1].route || ""}`;
}
function pages() {
const pages2 = getCurrentPages();
return pages2;
}
const index = {
range,
getPx,
sleep,
os,
sys,
random,
guid,
$parent,
addStyle,
addUnit,
deepClone,
deepMerge,
shallowMerge,
error,
randomArray,
timeFormat,
timeFrom,
trim,
queryParams,
toast,
type2icon,
priceFormat,
getDuration,
padZero,
formValidate,
getProperty,
setProperty,
page,
pages
// setConfig
};
exports.$parent = $parent;
exports.addStyle = addStyle;
exports.addUnit = addUnit;
exports.deepMerge = deepMerge;
exports.error = error;
exports.formValidate = formValidate;
exports.index = index;
exports.page = page;
exports.queryParams = queryParams;
exports.sleep = sleep;
exports.toast = toast;

View File

@@ -0,0 +1,7 @@
"use strict";
let platform = "none";
platform = "vue3";
platform = "mp";
platform = "weixin";
const platform$1 = platform;
exports.platform = platform$1;

View File

@@ -0,0 +1,177 @@
"use strict";
function email(value) {
return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value);
}
function mobile(value) {
return /^1[23456789]\d{9}$/.test(value);
}
function url(value) {
return /^((https|http|ftp|rtsp|mms):\/\/)(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z].[a-zA-Z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/.test(value);
}
function date(value) {
if (!value)
return false;
if (number(value))
value = +value;
return !/Invalid|NaN/.test(new Date(value).toString());
}
function dateISO(value) {
return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value);
}
function number(value) {
return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value);
}
function string(value) {
return typeof value === "string";
}
function digits(value) {
return /^\d+$/.test(value);
}
function idCard(value) {
return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(
value
);
}
function carNo(value) {
const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
if (value.length === 7) {
return creg.test(value);
}
if (value.length === 8) {
return xreg.test(value);
}
return false;
}
function amount(value) {
return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value);
}
function chinese(value) {
const reg = /^[\u4e00-\u9fa5]+$/gi;
return reg.test(value);
}
function letter(value) {
return /^[a-zA-Z]*$/.test(value);
}
function enOrNum(value) {
const reg = /^[0-9a-zA-Z]*$/g;
return reg.test(value);
}
function contains(value, param) {
return value.indexOf(param) >= 0;
}
function range(value, param) {
return value >= param[0] && value <= param[1];
}
function rangeLength(value, param) {
return value.length >= param[0] && value.length <= param[1];
}
function landline(value) {
const reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/;
return reg.test(value);
}
function empty(value) {
switch (typeof value) {
case "undefined":
return true;
case "string":
if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, "").length == 0)
return true;
break;
case "boolean":
if (!value)
return true;
break;
case "number":
if (value === 0 || isNaN(value))
return true;
break;
case "object":
if (value === null || value.length === 0)
return true;
for (const i in value) {
return false;
}
return true;
}
return false;
}
function jsonString(value) {
if (typeof value === "string") {
try {
const obj = JSON.parse(value);
if (typeof obj === "object" && obj) {
return true;
}
return false;
} catch (e) {
return false;
}
}
return false;
}
function array(value) {
if (typeof Array.isArray === "function") {
return Array.isArray(value);
}
return Object.prototype.toString.call(value) === "[object Array]";
}
function object(value) {
return Object.prototype.toString.call(value) === "[object Object]";
}
function code(value, len = 6) {
return new RegExp(`^\\d{${len}}$`).test(value);
}
function func(value) {
return typeof value === "function";
}
function promise(value) {
return object(value) && func(value.then) && func(value.catch);
}
function image(value) {
const newValue = value.split("?")[0];
const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;
return IMAGE_REGEXP.test(newValue);
}
function video(value) {
const VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i;
return VIDEO_REGEXP.test(value);
}
function regExp(o) {
return o && Object.prototype.toString.call(o) === "[object RegExp]";
}
const test = {
email,
mobile,
url,
date,
dateISO,
number,
digits,
idCard,
carNo,
amount,
chinese,
letter,
enOrNum,
contains,
range,
rangeLength,
empty,
isEmpty: empty,
jsonString,
landline,
object,
array,
code,
func,
promise,
video,
image,
regExp,
string
};
exports.array = array;
exports.empty = empty;
exports.number = number;
exports.test = test;

View File

@@ -0,0 +1,20 @@
"use strict";
let flag;
function throttle(func, wait = 500, immediate = true) {
if (immediate) {
if (!flag) {
flag = true;
typeof func === "function" && func();
setTimeout(() => {
flag = false;
}, wait);
}
} else if (!flag) {
flag = true;
setTimeout(() => {
flag = false;
typeof func === "function" && func();
}, wait);
}
}
exports.throttle = throttle;