@allahjs/utils 0.0.1
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/LICENSE +21 -0
- package/README.md +244 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/browser/cookieUtils/index.cjs +100 -0
- package/dist/browser/cookieUtils/index.cjs.map +1 -0
- package/dist/browser/cookieUtils/index.d.ts +55 -0
- package/dist/browser/domUtils/index.cjs +237 -0
- package/dist/browser/domUtils/index.cjs.map +1 -0
- package/dist/browser/domUtils/index.d.ts +116 -0
- package/dist/browser/index.cjs +12 -0
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.ts +3 -0
- package/dist/browser/urlUtils/index.cjs +262 -0
- package/dist/browser/urlUtils/index.cjs.map +1 -0
- package/dist/browser/urlUtils/index.d.ts +72 -0
- package/dist/core/arrayUtils/index.cjs +109 -0
- package/dist/core/arrayUtils/index.cjs.map +1 -0
- package/dist/core/arrayUtils/index.d.ts +67 -0
- package/dist/core/asyncUtils/index.cjs +180 -0
- package/dist/core/asyncUtils/index.cjs.map +1 -0
- package/dist/core/asyncUtils/index.d.ts +80 -0
- package/dist/core/colorUtils/index.cjs +38 -0
- package/dist/core/colorUtils/index.cjs.map +1 -0
- package/dist/core/colorUtils/index.d.ts +10 -0
- package/dist/core/cryptoUtils/index.cjs +428 -0
- package/dist/core/cryptoUtils/index.cjs.map +1 -0
- package/dist/core/cryptoUtils/index.d.ts +132 -0
- package/dist/core/dateUtils/index.cjs +245 -0
- package/dist/core/dateUtils/index.cjs.map +1 -0
- package/dist/core/dateUtils/index.d.ts +117 -0
- package/dist/core/index.cjs +34 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.ts +118 -0
- package/dist/core/numberUtils/index.cjs +126 -0
- package/dist/core/numberUtils/index.cjs.map +1 -0
- package/dist/core/numberUtils/index.d.ts +91 -0
- package/dist/core/objectUtils/index.cjs +249 -0
- package/dist/core/objectUtils/index.cjs.map +1 -0
- package/dist/core/objectUtils/index.d.ts +91 -0
- package/dist/core/pageUtils/index.cjs +74 -0
- package/dist/core/pageUtils/index.cjs.map +1 -0
- package/dist/core/pageUtils/index.d.ts +52 -0
- package/dist/core/stringUtils/index.cjs +163 -0
- package/dist/core/stringUtils/index.cjs.map +1 -0
- package/dist/core/stringUtils/index.d.ts +69 -0
- package/dist/core/validationUtils/index.cjs +154 -0
- package/dist/core/validationUtils/index.cjs.map +1 -0
- package/dist/core/validationUtils/index.d.ts +87 -0
- package/dist/esm/browser/cookieUtils/index.d.ts +55 -0
- package/dist/esm/browser/cookieUtils/index.js +96 -0
- package/dist/esm/browser/cookieUtils/index.js.map +1 -0
- package/dist/esm/browser/domUtils/index.d.ts +116 -0
- package/dist/esm/browser/domUtils/index.js +233 -0
- package/dist/esm/browser/domUtils/index.js.map +1 -0
- package/dist/esm/browser/index.d.ts +3 -0
- package/dist/esm/browser/index.js +4 -0
- package/dist/esm/browser/index.js.map +1 -0
- package/dist/esm/browser/urlUtils/index.d.ts +72 -0
- package/dist/esm/browser/urlUtils/index.js +248 -0
- package/dist/esm/browser/urlUtils/index.js.map +1 -0
- package/dist/esm/core/arrayUtils/index.d.ts +67 -0
- package/dist/esm/core/arrayUtils/index.js +105 -0
- package/dist/esm/core/arrayUtils/index.js.map +1 -0
- package/dist/esm/core/asyncUtils/index.d.ts +80 -0
- package/dist/esm/core/asyncUtils/index.js +175 -0
- package/dist/esm/core/asyncUtils/index.js.map +1 -0
- package/dist/esm/core/colorUtils/index.d.ts +10 -0
- package/dist/esm/core/colorUtils/index.js +34 -0
- package/dist/esm/core/colorUtils/index.js.map +1 -0
- package/dist/esm/core/cryptoUtils/index.d.ts +132 -0
- package/dist/esm/core/cryptoUtils/index.js +424 -0
- package/dist/esm/core/cryptoUtils/index.js.map +1 -0
- package/dist/esm/core/dateUtils/index.d.ts +117 -0
- package/dist/esm/core/dateUtils/index.js +241 -0
- package/dist/esm/core/dateUtils/index.js.map +1 -0
- package/dist/esm/core/index.d.ts +118 -0
- package/dist/esm/core/index.js +30 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/numberUtils/index.d.ts +91 -0
- package/dist/esm/core/numberUtils/index.js +122 -0
- package/dist/esm/core/numberUtils/index.js.map +1 -0
- package/dist/esm/core/objectUtils/index.d.ts +91 -0
- package/dist/esm/core/objectUtils/index.js +245 -0
- package/dist/esm/core/objectUtils/index.js.map +1 -0
- package/dist/esm/core/pageUtils/index.d.ts +52 -0
- package/dist/esm/core/pageUtils/index.js +66 -0
- package/dist/esm/core/pageUtils/index.js.map +1 -0
- package/dist/esm/core/stringUtils/index.d.ts +69 -0
- package/dist/esm/core/stringUtils/index.js +159 -0
- package/dist/esm/core/stringUtils/index.js.map +1 -0
- package/dist/esm/core/validationUtils/index.d.ts +87 -0
- package/dist/esm/core/validationUtils/index.js +150 -0
- package/dist/esm/core/validationUtils/index.js.map +1 -0
- package/dist/esm/index.d.ts +22 -0
- package/dist/esm/index.js +26 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/request/ReqQueue/index.js +59 -0
- package/dist/esm/request/ReqQueue/index.js.map +1 -0
- package/dist/esm/request/httpCode/index.js +49 -0
- package/dist/esm/request/httpCode/index.js.map +1 -0
- package/dist/esm/request/httpUtils/index.js +359 -0
- package/dist/esm/request/httpUtils/index.js.map +1 -0
- package/dist/esm/request/index.d.ts +15 -0
- package/dist/esm/request/index.js +166 -0
- package/dist/esm/request/index.js.map +1 -0
- package/dist/esm/request/typings/index.d.ts +184 -0
- package/dist/esm/request/uniRequest/index.js +62 -0
- package/dist/esm/request/uniRequest/index.js.map +1 -0
- package/dist/esm/types/data/index.d.ts +188 -0
- package/dist/esm/types/data/index.js +13 -0
- package/dist/esm/types/data/index.js.map +1 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/uniapp/Tips/index.d.ts +295 -0
- package/dist/esm/uniapp/Tips/index.js +498 -0
- package/dist/esm/uniapp/Tips/index.js.map +1 -0
- package/dist/esm/uniapp/cloudUtils/index.d.ts +56 -0
- package/dist/esm/uniapp/cloudUtils/index.js +90 -0
- package/dist/esm/uniapp/cloudUtils/index.js.map +1 -0
- package/dist/esm/uniapp/index.d.ts +3 -0
- package/dist/esm/uniapp/index.js +4 -0
- package/dist/esm/uniapp/index.js.map +1 -0
- package/dist/esm/uniapp/uniUtils/index.d.ts +113 -0
- package/dist/esm/uniapp/uniUtils/index.js +199 -0
- package/dist/esm/uniapp/uniUtils/index.js.map +1 -0
- package/dist/index.cjs +88 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/request/ReqQueue/index.cjs +63 -0
- package/dist/request/ReqQueue/index.cjs.map +1 -0
- package/dist/request/httpCode/index.cjs +52 -0
- package/dist/request/httpCode/index.cjs.map +1 -0
- package/dist/request/httpUtils/index.cjs +365 -0
- package/dist/request/httpUtils/index.cjs.map +1 -0
- package/dist/request/index.cjs +170 -0
- package/dist/request/index.cjs.map +1 -0
- package/dist/request/index.d.ts +15 -0
- package/dist/request/typings/index.d.ts +184 -0
- package/dist/request/uniRequest/index.cjs +66 -0
- package/dist/request/uniRequest/index.cjs.map +1 -0
- package/dist/types/data/index.cjs +15 -0
- package/dist/types/data/index.cjs.map +1 -0
- package/dist/types/data/index.d.ts +188 -0
- package/dist/types/index.cjs +8 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/uniapp/Tips/index.cjs +521 -0
- package/dist/uniapp/Tips/index.cjs.map +1 -0
- package/dist/uniapp/Tips/index.d.ts +295 -0
- package/dist/uniapp/cloudUtils/index.cjs +92 -0
- package/dist/uniapp/cloudUtils/index.cjs.map +1 -0
- package/dist/uniapp/cloudUtils/index.d.ts +56 -0
- package/dist/uniapp/index.cjs +53 -0
- package/dist/uniapp/index.cjs.map +1 -0
- package/dist/uniapp/index.d.ts +3 -0
- package/dist/uniapp/uniUtils/index.cjs +213 -0
- package/dist/uniapp/uniUtils/index.cjs.map +1 -0
- package/dist/uniapp/uniUtils/index.d.ts +113 -0
- package/package.json +129 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var index = require('../dateUtils/index.cjs');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 字符串工具函数
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* 字符串工具对象
|
|
12
|
+
*/
|
|
13
|
+
const stringUtils = {
|
|
14
|
+
/**
|
|
15
|
+
* 首字母大写
|
|
16
|
+
* @param str 输入字符串
|
|
17
|
+
* @returns 首字母大写的字符串
|
|
18
|
+
*/
|
|
19
|
+
capitalize(str) {
|
|
20
|
+
if (!str)
|
|
21
|
+
return str;
|
|
22
|
+
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
23
|
+
},
|
|
24
|
+
/**
|
|
25
|
+
* 驼峰命名转换
|
|
26
|
+
* @param str 输入字符串
|
|
27
|
+
* @returns 驼峰命名的字符串
|
|
28
|
+
*/
|
|
29
|
+
toCamelCase(str) {
|
|
30
|
+
return str.replace(/[-_\s]+(.)?/g, (_, char) => char ? char.toUpperCase() : '');
|
|
31
|
+
},
|
|
32
|
+
/**
|
|
33
|
+
* 短横线命名转换
|
|
34
|
+
* @param str 输入字符串
|
|
35
|
+
* @returns 短横线命名的字符串
|
|
36
|
+
*/
|
|
37
|
+
toKebabCase(str) {
|
|
38
|
+
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* 下划线命名转换
|
|
42
|
+
* @param str 输入字符串
|
|
43
|
+
* @returns 下划线命名的字符串
|
|
44
|
+
*/
|
|
45
|
+
toSnakeCase(str) {
|
|
46
|
+
return str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* 截断字符串
|
|
50
|
+
* @param str 输入字符串
|
|
51
|
+
* @param length 最大长度
|
|
52
|
+
* @param suffix 后缀,默认为 '...'
|
|
53
|
+
* @returns 截断后的字符串
|
|
54
|
+
*/
|
|
55
|
+
truncate(str, length, suffix = '...') {
|
|
56
|
+
if (str.length <= length)
|
|
57
|
+
return str;
|
|
58
|
+
return str.slice(0, length - suffix.length) + suffix;
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* 移除字符串两端空白字符
|
|
62
|
+
* @param str 输入字符串
|
|
63
|
+
* @returns 处理后的字符串
|
|
64
|
+
*/
|
|
65
|
+
trim(str) {
|
|
66
|
+
return str.replace(/^\s+|\s+$/g, '');
|
|
67
|
+
},
|
|
68
|
+
/**
|
|
69
|
+
* 生成随机字符串
|
|
70
|
+
* @param length 长度
|
|
71
|
+
* @param chars 字符集,默认为字母数字
|
|
72
|
+
* @returns 随机字符串
|
|
73
|
+
*/
|
|
74
|
+
randomString(length, chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789') {
|
|
75
|
+
let result = '';
|
|
76
|
+
for (let i = 0; i < length; i++) {
|
|
77
|
+
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
},
|
|
81
|
+
/**
|
|
82
|
+
* 构建金额字符串
|
|
83
|
+
* @param num 金额数值
|
|
84
|
+
* @returns 金额字符串
|
|
85
|
+
*/
|
|
86
|
+
buildMoneyStr(str) {
|
|
87
|
+
if (!str)
|
|
88
|
+
return '0';
|
|
89
|
+
str = str.toString();
|
|
90
|
+
// 先找到小数点的位置
|
|
91
|
+
let smallMoney = '';
|
|
92
|
+
let money = '';
|
|
93
|
+
if (str.indexOf('.') > 0) {
|
|
94
|
+
smallMoney = str.substring(str.indexOf('.'));
|
|
95
|
+
// 计算前面那部分的钱
|
|
96
|
+
money = str.substring(0, str.indexOf('.'));
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
money = str;
|
|
100
|
+
}
|
|
101
|
+
let num = (money || 0).toString();
|
|
102
|
+
let result = '';
|
|
103
|
+
while (num.length > 3) {
|
|
104
|
+
result = `,${num.slice(-3)}${result}`;
|
|
105
|
+
num = num.slice(0, num.length - 3);
|
|
106
|
+
}
|
|
107
|
+
if (num) {
|
|
108
|
+
result = num + result + smallMoney;
|
|
109
|
+
}
|
|
110
|
+
return result;
|
|
111
|
+
},
|
|
112
|
+
/**
|
|
113
|
+
* 替换对象或者数组中的空值
|
|
114
|
+
*/
|
|
115
|
+
replaceEmpty: (data, replaceStr = '-') => {
|
|
116
|
+
if (data) {
|
|
117
|
+
if (Array.isArray(data)) {
|
|
118
|
+
data.forEach((item, index) => {
|
|
119
|
+
// 只对对象进行处理
|
|
120
|
+
if (typeof item === 'object') {
|
|
121
|
+
data[index] = stringUtils.replaceEmpty(item, replaceStr);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
else if (typeof data === 'object') {
|
|
126
|
+
Object.keys(data).forEach(key => {
|
|
127
|
+
// 不对时间进行处理
|
|
128
|
+
if (key.includes('date') || key.includes('Date')) {
|
|
129
|
+
// 使用安全的时间格式化
|
|
130
|
+
data[key] = index.default.safeFormat(data[key]);
|
|
131
|
+
}
|
|
132
|
+
else if (key.includes('time') || key.includes('Time')) {
|
|
133
|
+
// 使用安全的时间格式化
|
|
134
|
+
data[key] = index.default.safeFormat(data[key], 'YYYY-MM-DD HH:mm:ss');
|
|
135
|
+
}
|
|
136
|
+
else if (data[key] === null || data[key] === undefined || data[key] === '') {
|
|
137
|
+
data[key] = replaceStr;
|
|
138
|
+
}
|
|
139
|
+
else if (typeof data[key] === 'object') {
|
|
140
|
+
data[key] = stringUtils.replaceEmpty(data[key], replaceStr);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return data;
|
|
146
|
+
},
|
|
147
|
+
/**
|
|
148
|
+
* 替换指定的字段为 -
|
|
149
|
+
*/
|
|
150
|
+
replaceFieldsEmpty: (data, fields, replaceStr = '-') => {
|
|
151
|
+
if (data && fields && fields.length > 0) {
|
|
152
|
+
fields.forEach(field => {
|
|
153
|
+
if (data[field] === null || data[field] === undefined || data[field] === '') {
|
|
154
|
+
data[field] = replaceStr;
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
return data;
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
exports.default = stringUtils;
|
|
163
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/core/stringUtils/index.ts"],"sourcesContent":[null],"names":["dateUtils"],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 字符串工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 字符串工具对象
|
|
6
|
+
*/
|
|
7
|
+
declare const stringUtils: {
|
|
8
|
+
/**
|
|
9
|
+
* 首字母大写
|
|
10
|
+
* @param str 输入字符串
|
|
11
|
+
* @returns 首字母大写的字符串
|
|
12
|
+
*/
|
|
13
|
+
capitalize(str: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* 驼峰命名转换
|
|
16
|
+
* @param str 输入字符串
|
|
17
|
+
* @returns 驼峰命名的字符串
|
|
18
|
+
*/
|
|
19
|
+
toCamelCase(str: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* 短横线命名转换
|
|
22
|
+
* @param str 输入字符串
|
|
23
|
+
* @returns 短横线命名的字符串
|
|
24
|
+
*/
|
|
25
|
+
toKebabCase(str: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* 下划线命名转换
|
|
28
|
+
* @param str 输入字符串
|
|
29
|
+
* @returns 下划线命名的字符串
|
|
30
|
+
*/
|
|
31
|
+
toSnakeCase(str: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* 截断字符串
|
|
34
|
+
* @param str 输入字符串
|
|
35
|
+
* @param length 最大长度
|
|
36
|
+
* @param suffix 后缀,默认为 '...'
|
|
37
|
+
* @returns 截断后的字符串
|
|
38
|
+
*/
|
|
39
|
+
truncate(str: string, length: number, suffix?: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* 移除字符串两端空白字符
|
|
42
|
+
* @param str 输入字符串
|
|
43
|
+
* @returns 处理后的字符串
|
|
44
|
+
*/
|
|
45
|
+
trim(str: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* 生成随机字符串
|
|
48
|
+
* @param length 长度
|
|
49
|
+
* @param chars 字符集,默认为字母数字
|
|
50
|
+
* @returns 随机字符串
|
|
51
|
+
*/
|
|
52
|
+
randomString(length: number, chars?: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* 构建金额字符串
|
|
55
|
+
* @param num 金额数值
|
|
56
|
+
* @returns 金额字符串
|
|
57
|
+
*/
|
|
58
|
+
buildMoneyStr(str: number | string): string;
|
|
59
|
+
/**
|
|
60
|
+
* 替换对象或者数组中的空值
|
|
61
|
+
*/
|
|
62
|
+
replaceEmpty: (data: any, replaceStr?: string) => any;
|
|
63
|
+
/**
|
|
64
|
+
* 替换指定的字段为 -
|
|
65
|
+
*/
|
|
66
|
+
replaceFieldsEmpty: (data: any, fields: string[], replaceStr?: string) => any;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export { stringUtils as default };
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 验证工具函数
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 验证工具对象
|
|
10
|
+
*/
|
|
11
|
+
const validationUtils = {
|
|
12
|
+
/**
|
|
13
|
+
* 验证邮箱格式
|
|
14
|
+
* @param email 邮箱地址
|
|
15
|
+
* @returns 是否为有效邮箱
|
|
16
|
+
*/
|
|
17
|
+
isEmail(email) {
|
|
18
|
+
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
19
|
+
return emailRegex.test(email);
|
|
20
|
+
},
|
|
21
|
+
/**
|
|
22
|
+
* 验证手机号格式(中国大陆)
|
|
23
|
+
* @param phone 手机号
|
|
24
|
+
* @returns 是否为有效手机号
|
|
25
|
+
*/
|
|
26
|
+
isPhone(phone) {
|
|
27
|
+
const phoneRegex = /^1[3-9]\d{9}$/;
|
|
28
|
+
return phoneRegex.test(phone);
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* 验证身份证号格式(中国大陆)
|
|
32
|
+
* @param idCard 身份证号
|
|
33
|
+
* @returns 是否为有效身份证号
|
|
34
|
+
*/
|
|
35
|
+
isIdCard(idCard) {
|
|
36
|
+
const idCardRegex = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
|
|
37
|
+
return idCardRegex.test(idCard);
|
|
38
|
+
},
|
|
39
|
+
/**
|
|
40
|
+
* 验证URL格式
|
|
41
|
+
* @param url URL地址
|
|
42
|
+
* @returns 是否为有效URL
|
|
43
|
+
*/
|
|
44
|
+
isUrl(url) {
|
|
45
|
+
try {
|
|
46
|
+
new URL(url);
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
/**
|
|
54
|
+
* 验证IP地址格式
|
|
55
|
+
* @param ip IP地址
|
|
56
|
+
* @returns 是否为有效IP地址
|
|
57
|
+
*/
|
|
58
|
+
isIp(ip) {
|
|
59
|
+
const ipRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
|
60
|
+
return ipRegex.test(ip);
|
|
61
|
+
},
|
|
62
|
+
/**
|
|
63
|
+
* 验证密码强度
|
|
64
|
+
* @param password 密码
|
|
65
|
+
* @param options 选项
|
|
66
|
+
* @returns 密码强度等级 0-4
|
|
67
|
+
*/
|
|
68
|
+
passwordStrength(password, options = {}) {
|
|
69
|
+
const { minLength = 8, requireUppercase = true, requireLowercase = true, requireNumbers = true, requireSpecialChars = true } = options;
|
|
70
|
+
let score = 0;
|
|
71
|
+
// 长度检查
|
|
72
|
+
if (password.length >= minLength)
|
|
73
|
+
score++;
|
|
74
|
+
// 大写字母
|
|
75
|
+
if (!requireUppercase || /[A-Z]/.test(password))
|
|
76
|
+
score++;
|
|
77
|
+
// 小写字母
|
|
78
|
+
if (!requireLowercase || /[a-z]/.test(password))
|
|
79
|
+
score++;
|
|
80
|
+
// 数字
|
|
81
|
+
if (!requireNumbers || /\d/.test(password))
|
|
82
|
+
score++;
|
|
83
|
+
// 特殊字符
|
|
84
|
+
if (!requireSpecialChars || /[!@#$%^&*(),.?":{}|<>]/.test(password))
|
|
85
|
+
score++;
|
|
86
|
+
return score;
|
|
87
|
+
},
|
|
88
|
+
/**
|
|
89
|
+
* 验证银行卡号格式
|
|
90
|
+
* @param cardNumber 银行卡号
|
|
91
|
+
* @returns 是否为有效银行卡号
|
|
92
|
+
*/
|
|
93
|
+
isBankCard(cardNumber) {
|
|
94
|
+
// 移除空格和连字符
|
|
95
|
+
const cleaned = cardNumber.replace(/[\s-]/g, '');
|
|
96
|
+
// 检查是否全为数字且长度在13-19位之间
|
|
97
|
+
if (!/^\d{13,19}$/.test(cleaned))
|
|
98
|
+
return false;
|
|
99
|
+
// Luhn算法验证
|
|
100
|
+
let sum = 0;
|
|
101
|
+
let isEven = false;
|
|
102
|
+
for (let i = cleaned.length - 1; i >= 0; i--) {
|
|
103
|
+
let digit = parseInt(cleaned[i]);
|
|
104
|
+
if (isEven) {
|
|
105
|
+
digit *= 2;
|
|
106
|
+
if (digit > 9) {
|
|
107
|
+
digit -= 9;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
sum += digit;
|
|
111
|
+
isEven = !isEven;
|
|
112
|
+
}
|
|
113
|
+
return sum % 10 === 0;
|
|
114
|
+
},
|
|
115
|
+
/**
|
|
116
|
+
* 验证中文字符
|
|
117
|
+
* @param text 文本
|
|
118
|
+
* @returns 是否包含中文字符
|
|
119
|
+
*/
|
|
120
|
+
hasChinese(text) {
|
|
121
|
+
return /[\u4e00-\u9fa5]/.test(text);
|
|
122
|
+
},
|
|
123
|
+
/**
|
|
124
|
+
* 验证只包含中文字符
|
|
125
|
+
* @param text 文本
|
|
126
|
+
* @returns 是否只包含中文字符
|
|
127
|
+
*/
|
|
128
|
+
isChineseOnly(text) {
|
|
129
|
+
return /^[\u4e00-\u9fa5]+$/.test(text);
|
|
130
|
+
},
|
|
131
|
+
/**
|
|
132
|
+
* 验证数字范围
|
|
133
|
+
* @param value 值
|
|
134
|
+
* @param min 最小值
|
|
135
|
+
* @param max 最大值
|
|
136
|
+
* @returns 是否在范围内
|
|
137
|
+
*/
|
|
138
|
+
isInRange(value, min, max) {
|
|
139
|
+
return value >= min && value <= max;
|
|
140
|
+
},
|
|
141
|
+
/**
|
|
142
|
+
* 验证字符串长度范围
|
|
143
|
+
* @param str 字符串
|
|
144
|
+
* @param min 最小长度
|
|
145
|
+
* @param max 最大长度
|
|
146
|
+
* @returns 是否在长度范围内
|
|
147
|
+
*/
|
|
148
|
+
isLengthInRange(str, min, max) {
|
|
149
|
+
return str.length >= min && str.length <= max;
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
exports.default = validationUtils;
|
|
154
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/core/validationUtils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 验证工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 验证工具对象
|
|
6
|
+
*/
|
|
7
|
+
declare const validationUtils: {
|
|
8
|
+
/**
|
|
9
|
+
* 验证邮箱格式
|
|
10
|
+
* @param email 邮箱地址
|
|
11
|
+
* @returns 是否为有效邮箱
|
|
12
|
+
*/
|
|
13
|
+
isEmail(email: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* 验证手机号格式(中国大陆)
|
|
16
|
+
* @param phone 手机号
|
|
17
|
+
* @returns 是否为有效手机号
|
|
18
|
+
*/
|
|
19
|
+
isPhone(phone: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* 验证身份证号格式(中国大陆)
|
|
22
|
+
* @param idCard 身份证号
|
|
23
|
+
* @returns 是否为有效身份证号
|
|
24
|
+
*/
|
|
25
|
+
isIdCard(idCard: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* 验证URL格式
|
|
28
|
+
* @param url URL地址
|
|
29
|
+
* @returns 是否为有效URL
|
|
30
|
+
*/
|
|
31
|
+
isUrl(url: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* 验证IP地址格式
|
|
34
|
+
* @param ip IP地址
|
|
35
|
+
* @returns 是否为有效IP地址
|
|
36
|
+
*/
|
|
37
|
+
isIp(ip: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* 验证密码强度
|
|
40
|
+
* @param password 密码
|
|
41
|
+
* @param options 选项
|
|
42
|
+
* @returns 密码强度等级 0-4
|
|
43
|
+
*/
|
|
44
|
+
passwordStrength(password: string, options?: {
|
|
45
|
+
minLength?: number;
|
|
46
|
+
requireUppercase?: boolean;
|
|
47
|
+
requireLowercase?: boolean;
|
|
48
|
+
requireNumbers?: boolean;
|
|
49
|
+
requireSpecialChars?: boolean;
|
|
50
|
+
}): number;
|
|
51
|
+
/**
|
|
52
|
+
* 验证银行卡号格式
|
|
53
|
+
* @param cardNumber 银行卡号
|
|
54
|
+
* @returns 是否为有效银行卡号
|
|
55
|
+
*/
|
|
56
|
+
isBankCard(cardNumber: string): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* 验证中文字符
|
|
59
|
+
* @param text 文本
|
|
60
|
+
* @returns 是否包含中文字符
|
|
61
|
+
*/
|
|
62
|
+
hasChinese(text: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* 验证只包含中文字符
|
|
65
|
+
* @param text 文本
|
|
66
|
+
* @returns 是否只包含中文字符
|
|
67
|
+
*/
|
|
68
|
+
isChineseOnly(text: string): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* 验证数字范围
|
|
71
|
+
* @param value 值
|
|
72
|
+
* @param min 最小值
|
|
73
|
+
* @param max 最大值
|
|
74
|
+
* @returns 是否在范围内
|
|
75
|
+
*/
|
|
76
|
+
isInRange(value: number, min: number, max: number): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* 验证字符串长度范围
|
|
79
|
+
* @param str 字符串
|
|
80
|
+
* @param min 最小长度
|
|
81
|
+
* @param max 最大长度
|
|
82
|
+
* @returns 是否在长度范围内
|
|
83
|
+
*/
|
|
84
|
+
isLengthInRange(str: string, min: number, max: number): boolean;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export { validationUtils as default };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cookie操作工具类
|
|
3
|
+
* 提供cookie的读取、设置、删除等功能
|
|
4
|
+
*/
|
|
5
|
+
declare const cookieUtils: {
|
|
6
|
+
/**
|
|
7
|
+
* 读取指定名称的cookie值
|
|
8
|
+
* @param name cookie名称
|
|
9
|
+
* @returns cookie值,如果不存在则返回null
|
|
10
|
+
*/
|
|
11
|
+
read(name: string): string | null;
|
|
12
|
+
/**
|
|
13
|
+
* 设置cookie
|
|
14
|
+
* @param name cookie名称
|
|
15
|
+
* @param value cookie值
|
|
16
|
+
* @param options cookie选项
|
|
17
|
+
*/
|
|
18
|
+
set(name: string, value: string, options?: {
|
|
19
|
+
expires?: Date | number;
|
|
20
|
+
path?: string;
|
|
21
|
+
domain?: string;
|
|
22
|
+
secure?: boolean;
|
|
23
|
+
sameSite?: "Strict" | "Lax" | "None";
|
|
24
|
+
}): void;
|
|
25
|
+
/**
|
|
26
|
+
* 删除指定名称的cookie
|
|
27
|
+
* @param name cookie名称
|
|
28
|
+
* @param options cookie选项(path和domain需要与设置时一致)
|
|
29
|
+
*/
|
|
30
|
+
remove(name: string, options?: {
|
|
31
|
+
path?: string;
|
|
32
|
+
domain?: string;
|
|
33
|
+
}): void;
|
|
34
|
+
/**
|
|
35
|
+
* 获取所有cookie
|
|
36
|
+
* @returns 包含所有cookie的对象
|
|
37
|
+
*/
|
|
38
|
+
getAll(): Record<string, string>;
|
|
39
|
+
/**
|
|
40
|
+
* 检查cookie是否存在
|
|
41
|
+
* @param name cookie名称
|
|
42
|
+
* @returns 是否存在
|
|
43
|
+
*/
|
|
44
|
+
exists(name: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* 清除所有cookie
|
|
47
|
+
* @param options cookie选项
|
|
48
|
+
*/
|
|
49
|
+
clearAll(options?: {
|
|
50
|
+
path?: string;
|
|
51
|
+
domain?: string;
|
|
52
|
+
}): void;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export { cookieUtils as default };
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cookie操作工具类
|
|
3
|
+
* 提供cookie的读取、设置、删除等功能
|
|
4
|
+
*/
|
|
5
|
+
const cookieUtils = {
|
|
6
|
+
/**
|
|
7
|
+
* 读取指定名称的cookie值
|
|
8
|
+
* @param name cookie名称
|
|
9
|
+
* @returns cookie值,如果不存在则返回null
|
|
10
|
+
*/
|
|
11
|
+
read(name) {
|
|
12
|
+
const match = document.cookie.match(new RegExp(`(^|;\\s*)(${name})=([^;]*)`));
|
|
13
|
+
return match ? decodeURIComponent(match[3]) : null;
|
|
14
|
+
},
|
|
15
|
+
/**
|
|
16
|
+
* 设置cookie
|
|
17
|
+
* @param name cookie名称
|
|
18
|
+
* @param value cookie值
|
|
19
|
+
* @param options cookie选项
|
|
20
|
+
*/
|
|
21
|
+
set(name, value, options = {}) {
|
|
22
|
+
let cookieString = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;
|
|
23
|
+
if (options.expires) {
|
|
24
|
+
if (typeof options.expires === 'number') {
|
|
25
|
+
// 如果是数字,表示天数
|
|
26
|
+
const date = new Date();
|
|
27
|
+
date.setTime(date.getTime() + options.expires * 24 * 60 * 60 * 1000);
|
|
28
|
+
cookieString += `; expires=${date.toUTCString()}`;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
cookieString += `; expires=${options.expires.toUTCString()}`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (options.path) {
|
|
35
|
+
cookieString += `; path=${options.path}`;
|
|
36
|
+
}
|
|
37
|
+
if (options.domain) {
|
|
38
|
+
cookieString += `; domain=${options.domain}`;
|
|
39
|
+
}
|
|
40
|
+
if (options.secure) {
|
|
41
|
+
cookieString += '; secure';
|
|
42
|
+
}
|
|
43
|
+
if (options.sameSite) {
|
|
44
|
+
cookieString += `; samesite=${options.sameSite}`;
|
|
45
|
+
}
|
|
46
|
+
document.cookie = cookieString;
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* 删除指定名称的cookie
|
|
50
|
+
* @param name cookie名称
|
|
51
|
+
* @param options cookie选项(path和domain需要与设置时一致)
|
|
52
|
+
*/
|
|
53
|
+
remove(name, options = {}) {
|
|
54
|
+
this.set(name, '', {
|
|
55
|
+
...options,
|
|
56
|
+
expires: new Date(0)
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
/**
|
|
60
|
+
* 获取所有cookie
|
|
61
|
+
* @returns 包含所有cookie的对象
|
|
62
|
+
*/
|
|
63
|
+
getAll() {
|
|
64
|
+
const cookies = {};
|
|
65
|
+
if (document.cookie) {
|
|
66
|
+
document.cookie.split(';').forEach(cookie => {
|
|
67
|
+
const [name, value] = cookie.trim().split('=');
|
|
68
|
+
if (name && value) {
|
|
69
|
+
cookies[decodeURIComponent(name)] = decodeURIComponent(value);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return cookies;
|
|
74
|
+
},
|
|
75
|
+
/**
|
|
76
|
+
* 检查cookie是否存在
|
|
77
|
+
* @param name cookie名称
|
|
78
|
+
* @returns 是否存在
|
|
79
|
+
*/
|
|
80
|
+
exists(name) {
|
|
81
|
+
return this.read(name) !== null;
|
|
82
|
+
},
|
|
83
|
+
/**
|
|
84
|
+
* 清除所有cookie
|
|
85
|
+
* @param options cookie选项
|
|
86
|
+
*/
|
|
87
|
+
clearAll(options = {}) {
|
|
88
|
+
const cookies = this.getAll();
|
|
89
|
+
Object.keys(cookies).forEach(name => {
|
|
90
|
+
this.remove(name, options);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export { cookieUtils as default };
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/browser/cookieUtils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|