common-utils-kit 1.1.4 → 1.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/test.js DELETED
@@ -1,153 +0,0 @@
1
-
2
- /**
3
- * 验证是否有值,除了 0、undefined、''、false、null、{}、[] 为空,其他都属于有值
4
- * @param {*} value - 要验证的值
5
- * @param {string} type - 类型检查(可选),当类型为 'number' 时会将 0 视为有值
6
- * @returns {boolean} - 如果有值返回 true,否则返回 false
7
- * @example
8
- * // 使用示例
9
- * console.log(hasValue(' Hello ')); // 输出: true
10
- * console.log(hasValue(0, 'number'),hasValue(0)); // 传入类型number,0也是有值 输出: true false
11
- * console.log(hasValue(true)); // 输出: true
12
- * console.log(hasValue([1, 2, 3]),hasValue([])); // 输出: true false
13
- * console.log(hasValue({ key: 'value' }),hasValue({})); // 输出: true false
14
- * console.log(hasValue(undefined)); // 输出: false
15
- * console.log(hasValue(null)); // 输出: false
16
- */
17
- export function hasValue(value, type) {
18
- switch (typeof value) {
19
- case 'undefined':
20
- return false;
21
- case 'string':
22
- return (type === 'string' || !type) && value.trim().length > 0;
23
- case 'boolean':
24
- return (type === 'boolean' || !type) && !!value;
25
- case 'number':
26
- return (type === 'number' || !type) && ((type === 'number' || value !== 0) && !isNaN(value));
27
- case 'object':
28
- if (value === null) return false;
29
- if (Array.isArray(value)) return (type === 'array' || !type) && value.length > 0;
30
- return (type === 'object' || !type) && Object.keys(value).length > 0;
31
- }
32
- return false;
33
- }
34
-
35
- /**
36
- * 获取值的数据类型
37
- * @param {*} value - 要获取类型的值
38
- * @returns {string} - 返回值的数据类型,包括 'string'、'number'、'boolean'、'function'、'array'、'object'、'null' 等
39
- * @example
40
- * // 使用示例
41
- * console.log(valueType('Hello')); // 输出: 'string'
42
- * console.log(valueType(42)); // 输出: 'number'
43
- * console.log(valueType(true)); // 输出: 'boolean'
44
- * console.log(valueType(function () {})); // 输出: 'function'
45
- * console.log(valueType([1, 2, 3])); // 输出: 'array'
46
- * console.log(valueType({ key: 'value' })); // 输出: 'object'
47
- * console.log(valueType(null)); // 输出: 'null'
48
- */
49
- export function valueType(value) {
50
- const type = typeof value;
51
- switch (type) {
52
- case 'string':
53
- case 'number':
54
- case 'boolean':
55
- case 'function':
56
- return type;
57
- case 'object':
58
- if (value === null) {
59
- return 'null';
60
- } else if (Array.isArray(value)) {
61
- return 'array';
62
- } else if (Object.prototype.toString.call(value) === '[object Object]') {
63
- return 'object';
64
- }
65
- break;
66
- }
67
- }
68
-
69
- /**
70
- * 验证电子邮箱格式
71
- */
72
- export function email(value) {
73
- return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value)
74
- }
75
-
76
- /**
77
- * 验证手机格式
78
- */
79
- export function mobile(value) {
80
- return /^1[23456789]\d{9}$/.test(value)
81
- }
82
-
83
- /**
84
- * 验证URL格式
85
- */
86
- export function url(value) {
87
- 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_!~*'().;?:@&=+$,%#-]+)+\/?)$/
88
- .test(value)
89
- }
90
-
91
- /**
92
- * 验证身份证号码
93
- */
94
- export function idCard(value) {
95
- 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(
96
- value
97
- )
98
- }
99
-
100
- /**
101
- * 是否车牌号
102
- */
103
- export function carNo(value) {
104
- // 新能源车牌
105
- const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/
106
- // 旧车牌
107
- const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/
108
- if (value.length === 7) {
109
- return creg.test(value)
110
- } if (value.length === 8) {
111
- return xreg.test(value)
112
- }
113
- return false
114
- }
115
-
116
- /**
117
- * 金额,只允许2位小数
118
- */
119
- export function amount(value) {
120
- // 金额,只允许保留两位小数
121
- return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value)
122
- }
123
-
124
- /**
125
- * 中文
126
- */
127
- export function chinese(value) {
128
- const reg = /^[\u4e00-\u9fa5]+$/gi
129
- return reg.test(value)
130
- }
131
-
132
- /**
133
- * 只能输入字母
134
- */
135
- export function letter(value) {
136
- return /^[a-zA-Z]*$/.test(value)
137
- }
138
-
139
- /**
140
- * 是否固定电话
141
- */
142
- export function landline(value) {
143
- const reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/
144
- return reg.test(value)
145
- }
146
-
147
- /**
148
- * 是否短信验证码
149
- */
150
- export function code(value, len = 6) {
151
- return new RegExp(`^\\d{${len}}$`).test(value)
152
- }
153
-
package/src/tool.js DELETED
@@ -1,55 +0,0 @@
1
-
2
-
3
- let timeout = null
4
- /**
5
- * 函数防抖
6
- * @param {number} time - 防抖间隔时间,单位毫秒
7
- * @returns {Promise<boolean>} - 返回一个 Promise,在防抖时间内触发 resolve(true)
8
- * @example
9
- * debounce(time).then(res => {
10
- * 执行方法
11
- * })
12
- */
13
- export function debounce(time = 500) {
14
- return new Promise((resolve) => {
15
- if (timeout !== null) clearTimeout(timeout);
16
- timeout = setTimeout(() => {
17
- resolve(true)
18
- }, time)
19
- })
20
- }
21
-
22
-
23
- let wait = null
24
- /**
25
- * @description 节流
26
- * @param {number} time 每time秒调用一次 默认0.5秒
27
- * @example
28
- * throttle(time).then(res => {
29
- * 执行方法
30
- * })
31
- */
32
- export function throttle(time = 500) { //防抖 // 默认0.2秒后执行事件
33
- return new Promise((resolve) => {
34
- if (wait) { return }
35
- wait = setTimeout(() => {
36
- resolve(true)
37
- wait = null
38
- }, time)
39
- })
40
- }
41
-
42
- /**
43
- * @description 进行阻塞延时,以达到可以简写代码的目的
44
- * @param {number} value 堵塞时间 单位ms 毫秒
45
- * @returns {Promise} 返回promise
46
- * @example
47
- * await sleep(1000);
48
- */
49
- export function sleep(value = 100) {
50
- return new Promise((resolve) => {
51
- setTimeout(() => {
52
- resolve()
53
- }, value)
54
- })
55
- }