mm_check 1.4.9 → 1.5.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/README.md +219 -1
- package/index.js +45 -35
- package/package.json +5 -5
- package/test.js +104 -104
package/README.md
CHANGED
|
@@ -1,2 +1,220 @@
|
|
|
1
1
|
# mm_check
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
这是超级美眉check参数验证模块,用于验证参数是否正确。本模块提供了一个强大的参数验证类,可以对各种类型的参数进行验证,包括字符串、数字、布尔值、数组和对象等。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install mm_check
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 基本使用
|
|
12
|
+
|
|
13
|
+
```javascript
|
|
14
|
+
const Check = require('mm_check');
|
|
15
|
+
|
|
16
|
+
// 创建验证实例
|
|
17
|
+
const check = new Check({
|
|
18
|
+
name: "username", // 参数名
|
|
19
|
+
title: "用户名", // 参数介绍名
|
|
20
|
+
type: "string", // 参数类型
|
|
21
|
+
string: {
|
|
22
|
+
notEmpty: true, // 非空验证
|
|
23
|
+
min: 3, // 最小长度
|
|
24
|
+
max: 20 // 最大长度
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
// 验证参数
|
|
29
|
+
const result = check.run("test_user");
|
|
30
|
+
$.log.debug(result); // 如果验证通过返回null,否则返回错误信息
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 参数配置说明
|
|
34
|
+
|
|
35
|
+
### 基础配置
|
|
36
|
+
|
|
37
|
+
- `name`: 参数名称
|
|
38
|
+
- `title`: 参数介绍名
|
|
39
|
+
- `type`: 参数类型,支持 string、number、bool、dateTime、object、array
|
|
40
|
+
- `splitter`: 分隔符号,用于查询时判断多个传参,默认为 "|"
|
|
41
|
+
- `default`: 默认值
|
|
42
|
+
|
|
43
|
+
### 字符串验证配置 (string)
|
|
44
|
+
|
|
45
|
+
```javascript
|
|
46
|
+
string: {
|
|
47
|
+
notEmpty: false, // 是否非空
|
|
48
|
+
min: 0, // 最小长度
|
|
49
|
+
max: 0, // 最大长度
|
|
50
|
+
range: [], // 长度范围,例:[6, 20]
|
|
51
|
+
regex: "", // 正则表达式
|
|
52
|
+
identical: "", // 验证与某个参数值是否相同
|
|
53
|
+
different: "", // 验证与某个参数值是否不同
|
|
54
|
+
extension: "", // 后缀名,多个用"|"分隔
|
|
55
|
+
format: "" // 格式验证:email、url、date、dateISO、number、digits、phone
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 数值验证配置 (number)
|
|
60
|
+
|
|
61
|
+
```javascript
|
|
62
|
+
number: {
|
|
63
|
+
min: 0, // 最小值
|
|
64
|
+
max: 0, // 最大值
|
|
65
|
+
range: [] // 数值范围,例:[0, 100]
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 数组验证配置 (array)
|
|
70
|
+
|
|
71
|
+
```javascript
|
|
72
|
+
array: {
|
|
73
|
+
min: 0, // 最小成员数
|
|
74
|
+
max: 0, // 最大成员数
|
|
75
|
+
range: [], // 成员数范围
|
|
76
|
+
type: "", // 成员类型:string、number、object
|
|
77
|
+
object: [] // 成员为对象时的验证规则
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 使用示例
|
|
82
|
+
|
|
83
|
+
### 1. 字符串验证
|
|
84
|
+
|
|
85
|
+
```javascript
|
|
86
|
+
const userCheck = new Check({
|
|
87
|
+
name: "username",
|
|
88
|
+
title: "用户名",
|
|
89
|
+
type: "string",
|
|
90
|
+
string: {
|
|
91
|
+
notEmpty: true,
|
|
92
|
+
min: 3,
|
|
93
|
+
max: 20,
|
|
94
|
+
regex: "^[a-zA-Z0-9_]+$" // 只允许字母、数字和下划线
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
$.log.debug(userCheck.run("")); // 用户名(username) 不能为空
|
|
99
|
+
$.log.debug(userCheck.run("ab")); // 用户名(username) 最少需要输入 3 个字符
|
|
100
|
+
$.log.debug(userCheck.run("user@123")); // 用户名(username) 格式不正确
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 2. 数值验证
|
|
104
|
+
|
|
105
|
+
```javascript
|
|
106
|
+
const ageCheck = new Check({
|
|
107
|
+
name: "age",
|
|
108
|
+
title: "年龄",
|
|
109
|
+
type: "number",
|
|
110
|
+
number: {
|
|
111
|
+
min: 0,
|
|
112
|
+
max: 120
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
$.log.debug(ageCheck.run(150)); // 年龄(age) 请输入不大于 120 的数值
|
|
117
|
+
$.log.debug(ageCheck.run(-1)); // 年龄(age) 请输入不小于 0 的数值
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 3. 数组验证
|
|
121
|
+
|
|
122
|
+
```javascript
|
|
123
|
+
const tagsCheck = new Check({
|
|
124
|
+
name: "tags",
|
|
125
|
+
title: "标签",
|
|
126
|
+
type: "array",
|
|
127
|
+
array: {
|
|
128
|
+
min: 1,
|
|
129
|
+
max: 5,
|
|
130
|
+
type: "string"
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
$.log.debug(tagsCheck.run([])); // 标签(tags) 数组的成员数不小于 1 个
|
|
135
|
+
$.log.debug(tagsCheck.run([1, 2, 3])); // 数组成员数据类型不正确, 应为string型
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 4. 对象验证
|
|
139
|
+
|
|
140
|
+
```javascript
|
|
141
|
+
const userInfoCheck = new Check({
|
|
142
|
+
name: "userInfo",
|
|
143
|
+
title: "用户信息",
|
|
144
|
+
type: "object",
|
|
145
|
+
object: [
|
|
146
|
+
{
|
|
147
|
+
name: "name",
|
|
148
|
+
title: "姓名",
|
|
149
|
+
type: "string",
|
|
150
|
+
string: {
|
|
151
|
+
notEmpty: true
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: "age",
|
|
156
|
+
title: "年龄",
|
|
157
|
+
type: "number",
|
|
158
|
+
number: {
|
|
159
|
+
min: 0,
|
|
160
|
+
max: 120
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
$.log.debug(userInfoCheck.run({
|
|
167
|
+
name: "",
|
|
168
|
+
age: 150
|
|
169
|
+
})); // 属性 -> 姓名(name) 不能为空
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## 错误提示配置
|
|
173
|
+
|
|
174
|
+
可以通过 `lang` 方法自定义错误提示信息:
|
|
175
|
+
|
|
176
|
+
```javascript
|
|
177
|
+
check.lang({
|
|
178
|
+
notEmpty: "字段不能为空",
|
|
179
|
+
minLength: "长度不能小于 {0} 个字符",
|
|
180
|
+
maxLength: "长度不能超过 {0} 个字符",
|
|
181
|
+
// ... 其他提示信息
|
|
182
|
+
});
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## API 参考
|
|
186
|
+
|
|
187
|
+
### Check 类
|
|
188
|
+
|
|
189
|
+
#### 构造函数
|
|
190
|
+
|
|
191
|
+
- `constructor(param)`: 创建一个新的验证实例
|
|
192
|
+
- `param`: 验证配置对象
|
|
193
|
+
|
|
194
|
+
#### 实例方法
|
|
195
|
+
|
|
196
|
+
- `run(value, [config])`: 验证值是否正确
|
|
197
|
+
- `value`: 要验证的值
|
|
198
|
+
- `config`: 可选的验证配置,默认使用构造函数的配置
|
|
199
|
+
- 返回:验证通过返回null,否则返回错误信息
|
|
200
|
+
|
|
201
|
+
- `lang(obj)`: 获取或设置错误提示
|
|
202
|
+
- `obj`: 设置的提示对象,为空则获取当前提示
|
|
203
|
+
- 返回:错误提示集合
|
|
204
|
+
|
|
205
|
+
- `msg(key, v1, v2)`: 获取错误提示
|
|
206
|
+
- `key`: 语言包键
|
|
207
|
+
- `v1`: 替换的词1
|
|
208
|
+
- `v2`: 替换的词2
|
|
209
|
+
- 返回:错误提示语句
|
|
210
|
+
|
|
211
|
+
## 注意事项
|
|
212
|
+
|
|
213
|
+
1. 使用前需要先安装 `mm_expand` 模块,因为本模块依赖于它。
|
|
214
|
+
2. 验证失败时返回的错误信息会自动包含参数名和标题。
|
|
215
|
+
3. 支持链式验证,可以同时设置多个验证规则。
|
|
216
|
+
4. 对于数组和对象的验证,支持递归验证其成员或属性。
|
|
217
|
+
|
|
218
|
+
## 许可证
|
|
219
|
+
|
|
220
|
+
MIT
|
package/index.js
CHANGED
|
@@ -89,7 +89,7 @@ class Check {
|
|
|
89
89
|
* @param {Object} obj 设置的提示,可以为空,为空表示获取
|
|
90
90
|
* @return {Object} 错误提示集合
|
|
91
91
|
*/
|
|
92
|
-
Check.prototype.lang = function(obj) {
|
|
92
|
+
Check.prototype.lang = function (obj) {
|
|
93
93
|
if (obj) {
|
|
94
94
|
$.push($.lang.config[$.lang.now], obj, true);
|
|
95
95
|
}
|
|
@@ -103,7 +103,7 @@ Check.prototype.lang = function(obj) {
|
|
|
103
103
|
* @param {String} v2 替换的词2
|
|
104
104
|
* @return {String} 返回错误语句
|
|
105
105
|
*/
|
|
106
|
-
Check.prototype.msg = function(key, v1, v2) {
|
|
106
|
+
Check.prototype.msg = function (key, v1, v2) {
|
|
107
107
|
var str = $.lang.get(key, v1, v2);
|
|
108
108
|
if (str) {
|
|
109
109
|
return str;
|
|
@@ -117,7 +117,7 @@ Check.prototype.msg = function(key, v1, v2) {
|
|
|
117
117
|
* @param {Numbr} value 被验证的值
|
|
118
118
|
* @return {String} 没通过返回信息, 否则返回空
|
|
119
119
|
*/
|
|
120
|
-
Check.prototype.
|
|
120
|
+
Check.prototype.checkNumber = function (value, cg) {
|
|
121
121
|
var range = cg.range;
|
|
122
122
|
if (range.length === 2) {
|
|
123
123
|
if (range[0] > value || range[1] < value) {
|
|
@@ -139,7 +139,7 @@ Check.prototype.check_number = function(value, cg) {
|
|
|
139
139
|
* @param {Array} value 值
|
|
140
140
|
* @return {String} 没通过返回信息, 否则返回空
|
|
141
141
|
*/
|
|
142
|
-
Check.prototype.
|
|
142
|
+
Check.prototype.checkArray = function (value, cg) {
|
|
143
143
|
var range = cg.range;
|
|
144
144
|
if (range.length === 2) {
|
|
145
145
|
if (range[0] > value.length || range[1] < value.length) {
|
|
@@ -168,7 +168,7 @@ Check.prototype.check_array = function(value, cg) {
|
|
|
168
168
|
* @param {Object} value 值
|
|
169
169
|
* @return {String} 没通过返回信息, 否则返回空
|
|
170
170
|
*/
|
|
171
|
-
Check.prototype.
|
|
171
|
+
Check.prototype.checkObject = function (value, cg) {
|
|
172
172
|
var msg = null;
|
|
173
173
|
var len = cg.length;
|
|
174
174
|
for (var i = 0; i < len; i++) {
|
|
@@ -186,7 +186,7 @@ Check.prototype.check_object = function(value, cg) {
|
|
|
186
186
|
* @param {String} value 被验证的值
|
|
187
187
|
* @return {String} 没通过返回信息,否则返回空
|
|
188
188
|
*/
|
|
189
|
-
Check.prototype.
|
|
189
|
+
Check.prototype.checkStringRange = function (value, cg) {
|
|
190
190
|
if (!cg) {
|
|
191
191
|
return null;
|
|
192
192
|
}
|
|
@@ -212,7 +212,7 @@ Check.prototype.check_string_range = function(value, cg) {
|
|
|
212
212
|
* @param {String} value 被验证的值
|
|
213
213
|
* @return {String} 没通过返回信息,否则返回空
|
|
214
214
|
*/
|
|
215
|
-
Check.prototype.
|
|
215
|
+
Check.prototype.checkExtension = function (value, cg) {
|
|
216
216
|
if (!cg) {
|
|
217
217
|
return null;
|
|
218
218
|
}
|
|
@@ -240,13 +240,16 @@ Check.prototype.check_extension = function(value, cg) {
|
|
|
240
240
|
* @param {String} value 被验证的值
|
|
241
241
|
* @return {String} 没通过返回信息,否则返回空
|
|
242
242
|
*/
|
|
243
|
-
Check.prototype.
|
|
243
|
+
Check.prototype.checkStringRegex = function (value, cg) {
|
|
244
244
|
if (!cg) {
|
|
245
245
|
return null;
|
|
246
246
|
}
|
|
247
247
|
var rx = cg.regex;
|
|
248
|
-
if (rx
|
|
249
|
-
|
|
248
|
+
if (rx) {
|
|
249
|
+
var exp = new RegExp(rx);
|
|
250
|
+
if (!exp.test(value)) {
|
|
251
|
+
return this.msg('regex', rx);
|
|
252
|
+
}
|
|
250
253
|
}
|
|
251
254
|
return null;
|
|
252
255
|
};
|
|
@@ -256,23 +259,30 @@ Check.prototype.check_string_regex = function(value, cg) {
|
|
|
256
259
|
* @param {String} value 被验证的值
|
|
257
260
|
* @return {String} 没通过返回信息, 否则返回空
|
|
258
261
|
*/
|
|
259
|
-
Check.prototype.
|
|
262
|
+
Check.prototype.checkStringFormat = function (value, cg) {
|
|
260
263
|
if (!cg) {
|
|
261
264
|
return null;
|
|
262
265
|
}
|
|
263
266
|
var fmt = cg.format;
|
|
264
|
-
if (fmt) {
|
|
265
267
|
var bl;
|
|
268
|
+
try {
|
|
266
269
|
if (fmt === 'url' && value.indexOf('/') === 0) {
|
|
267
|
-
|
|
270
|
+
("http://mm.elins.cn" + value).isFormat(fmt);
|
|
271
|
+
bl = true;
|
|
268
272
|
} else {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
if (!bl) {
|
|
272
|
-
return this.msg(fmt);
|
|
273
|
+
value.isFormat(fmt);
|
|
274
|
+
bl = true;
|
|
273
275
|
}
|
|
276
|
+
} catch (e) {
|
|
277
|
+
bl = false;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
if (!bl) {
|
|
281
|
+
return this.msg(fmt, value);
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
return null;
|
|
274
285
|
}
|
|
275
|
-
return null;
|
|
276
286
|
};
|
|
277
287
|
|
|
278
288
|
/**
|
|
@@ -280,19 +290,19 @@ Check.prototype.check_string_format = function(value, cg) {
|
|
|
280
290
|
* @param {String} value 被验证的值
|
|
281
291
|
* @return {String} 没通过返回信息,否则返回空
|
|
282
292
|
*/
|
|
283
|
-
Check.prototype.
|
|
293
|
+
Check.prototype.checkString = function (value, cg) {
|
|
284
294
|
if (value === '' && cg.notEmpty) {
|
|
285
295
|
return this.msg('notEmpty');
|
|
286
296
|
} else {
|
|
287
|
-
var msg = this.
|
|
297
|
+
var msg = this.checkStringRange(value, cg);
|
|
288
298
|
if (!msg) {
|
|
289
|
-
msg = this.
|
|
299
|
+
msg = this.checkStringFormat(value, cg);
|
|
290
300
|
}
|
|
291
301
|
if (!msg) {
|
|
292
|
-
msg = this.
|
|
302
|
+
msg = this.checkExtension(value, cg);
|
|
293
303
|
}
|
|
294
304
|
if (!msg) {
|
|
295
|
-
msg = this.
|
|
305
|
+
msg = this.checkStringRegex(value, cg);
|
|
296
306
|
}
|
|
297
307
|
return msg;
|
|
298
308
|
}
|
|
@@ -302,7 +312,7 @@ Check.prototype.check_string = function(value, cg) {
|
|
|
302
312
|
* 创建消息头
|
|
303
313
|
* @param {Object} cg 配置
|
|
304
314
|
*/
|
|
305
|
-
Check.prototype.
|
|
315
|
+
Check.prototype.msgHead = function (cg) {
|
|
306
316
|
var head = cg.title ? cg.title : '';
|
|
307
317
|
head += cg.name ? `(${cg.name}) ` : '';
|
|
308
318
|
return head;
|
|
@@ -313,7 +323,7 @@ Check.prototype.msg_head = function(cg) {
|
|
|
313
323
|
* @param {Object} value
|
|
314
324
|
* @return {String} 没通过返回信息,否则返回空
|
|
315
325
|
*/
|
|
316
|
-
Check.prototype.run = function(value, cg) {
|
|
326
|
+
Check.prototype.run = function (value, cg) {
|
|
317
327
|
if (!cg) {
|
|
318
328
|
cg = this;
|
|
319
329
|
}
|
|
@@ -321,7 +331,7 @@ Check.prototype.run = function(value, cg) {
|
|
|
321
331
|
|
|
322
332
|
var type = cg.type;
|
|
323
333
|
if (value !== null && type) {
|
|
324
|
-
var p = typeof(value);
|
|
334
|
+
var p = typeof (value);
|
|
325
335
|
if (type !== p) {
|
|
326
336
|
if (type === 'number') {
|
|
327
337
|
if (p === 'string') {
|
|
@@ -334,7 +344,7 @@ Check.prototype.run = function(value, cg) {
|
|
|
334
344
|
if (isNaN(val)) {
|
|
335
345
|
msg = this.msg('number');
|
|
336
346
|
} else {
|
|
337
|
-
msg = this.
|
|
347
|
+
msg = this.checkNumber(Number(val), g);
|
|
338
348
|
}
|
|
339
349
|
if (msg) {
|
|
340
350
|
break;
|
|
@@ -344,11 +354,11 @@ Check.prototype.run = function(value, cg) {
|
|
|
344
354
|
if (isNaN(value)) {
|
|
345
355
|
msg = this.msg('number');
|
|
346
356
|
} else {
|
|
347
|
-
msg = this.
|
|
357
|
+
msg = this.checkNumber(Number(value), cg.number);
|
|
348
358
|
}
|
|
349
359
|
}
|
|
350
360
|
} else {
|
|
351
|
-
msg = this.
|
|
361
|
+
msg = this.checkNumber(value, cg.number);
|
|
352
362
|
}
|
|
353
363
|
} else if (type === 'bool') {
|
|
354
364
|
if (value !== 'true' && value !== 'false' && value !== '1' && value !== '0') {
|
|
@@ -356,7 +366,7 @@ Check.prototype.run = function(value, cg) {
|
|
|
356
366
|
}
|
|
357
367
|
} else if (type === 'array') {
|
|
358
368
|
if (Array.isArray(value)) {
|
|
359
|
-
msg = this.
|
|
369
|
+
msg = this.checkArray(value, cg.array);
|
|
360
370
|
} else {
|
|
361
371
|
msg = this.msg('type', type);
|
|
362
372
|
}
|
|
@@ -369,25 +379,25 @@ Check.prototype.run = function(value, cg) {
|
|
|
369
379
|
var len = arr.length;
|
|
370
380
|
var g = cg.string;
|
|
371
381
|
for (var i = 0; i < len; i++) {
|
|
372
|
-
msg = this.
|
|
382
|
+
msg = this.checkString(arr[i], g);
|
|
373
383
|
if (msg) {
|
|
374
384
|
break;
|
|
375
385
|
}
|
|
376
386
|
}
|
|
377
387
|
} else {
|
|
378
|
-
msg = this.
|
|
388
|
+
msg = this.checkString(value, cg.string);
|
|
379
389
|
}
|
|
380
390
|
} else if (type === 'number') {
|
|
381
|
-
msg = this.
|
|
391
|
+
msg = this.checkNumber(value, cg.number);
|
|
382
392
|
} else if (type === 'object') {
|
|
383
393
|
if (Array.isArray(value)) {
|
|
384
394
|
msg = this.msg('type', type);
|
|
385
395
|
} else {
|
|
386
|
-
msg = this.
|
|
396
|
+
msg = this.checkObject(value, cg.object);
|
|
387
397
|
}
|
|
388
398
|
}
|
|
389
399
|
}
|
|
390
|
-
return msg ? this.
|
|
400
|
+
return msg ? this.msgHead(cg) + msg : null;
|
|
391
401
|
};
|
|
392
402
|
|
|
393
403
|
if (global.$) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mm_check",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "这是超级美眉check参数验证模块,用于验证参数是否正确",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "git+https://
|
|
11
|
+
"url": "git+https://gitee.com/qiuwenwu91/mm_check.git"
|
|
12
12
|
},
|
|
13
13
|
"keywords": [
|
|
14
14
|
"check",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"author": "邱文武",
|
|
23
23
|
"license": "ISC",
|
|
24
24
|
"bugs": {
|
|
25
|
-
"url": "https://
|
|
25
|
+
"url": "https://gitee.com/qiuwenwu91/mm_check/issues"
|
|
26
26
|
},
|
|
27
|
-
"homepage": "https://
|
|
27
|
+
"homepage": "https://gitee.com/qiuwenwu91/mm_check#readme",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"mm_expand": "^
|
|
29
|
+
"mm_expand": "^2.0.0"
|
|
30
30
|
}
|
|
31
31
|
}
|
package/test.js
CHANGED
|
@@ -5,7 +5,7 @@ const Check = require('./index.js');
|
|
|
5
5
|
// var list = ck.lang({
|
|
6
6
|
// idcard: "需为有效身份证号"
|
|
7
7
|
// });
|
|
8
|
-
//
|
|
8
|
+
// $.log.debug(list);
|
|
9
9
|
// }
|
|
10
10
|
|
|
11
11
|
async function test() {
|
|
@@ -17,114 +17,114 @@ async function test() {
|
|
|
17
17
|
}
|
|
18
18
|
var ck = new Check(config);
|
|
19
19
|
var msg = ck.run("44142319910401801T");
|
|
20
|
-
|
|
20
|
+
$.log.debug(msg);
|
|
21
21
|
var msg = ck.run("44142319910401801X");
|
|
22
|
-
|
|
22
|
+
$.log.debug(msg);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
async function test() {
|
|
26
|
+
var config = {
|
|
27
|
+
type: "string",
|
|
28
|
+
string: {
|
|
29
|
+
format: "url"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
var ck = new Check(config);
|
|
33
|
+
var msg = ck.run("123123/123123");
|
|
34
|
+
$.log.debug(msg);
|
|
35
|
+
var msg = ck.run("https://www.fman.top/?t=123");
|
|
36
|
+
$.log.debug(msg);
|
|
37
|
+
}
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
39
|
+
async function test() {
|
|
40
|
+
var config = {
|
|
41
|
+
required: "all",
|
|
42
|
+
type: "string",
|
|
43
|
+
string: {
|
|
44
|
+
format: "dateISO"
|
|
45
|
+
// regex: "[0-9]+\.png"
|
|
46
|
+
// extension: "png|gif|jpg|jpeg|bmp"
|
|
47
|
+
// min: 100,
|
|
48
|
+
// max: 10,
|
|
49
|
+
// range: [0, 8]
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var ck = new Check(config);
|
|
53
|
+
var msg = ck.run('1970-01-01 00:61:61');
|
|
54
|
+
$.log.debug('1970-01-01 00:61:61', msg);
|
|
55
|
+
msg = ck.run('1970-01-01 00:59:59');
|
|
56
|
+
$.log.debug('1970-01-01 00:59:59', msg);
|
|
57
|
+
msg = ck.run('1970.png');
|
|
58
|
+
$.log.debug('1970.png', msg);
|
|
59
|
+
}
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
61
|
+
async function test() {
|
|
62
|
+
var config = {
|
|
63
|
+
title: "点赞",
|
|
64
|
+
name: "zan",
|
|
65
|
+
type: "array",
|
|
66
|
+
array: {
|
|
67
|
+
type: "object",
|
|
68
|
+
object: [{
|
|
69
|
+
title: "数量",
|
|
70
|
+
name: "num",
|
|
71
|
+
type: "object",
|
|
72
|
+
number: {
|
|
73
|
+
range: [3, 10]
|
|
74
|
+
}
|
|
75
|
+
}]
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
var ck = new Check(config);
|
|
79
|
+
// msg = ck.run([1, 2]);
|
|
80
|
+
// $.log.debug(msg);
|
|
81
|
+
// var msg = ck.run(["成员1", "成员2"]);
|
|
82
|
+
var msg = ck.run([{
|
|
83
|
+
num: "成员1"
|
|
84
|
+
}, {
|
|
85
|
+
num: "成员2"
|
|
86
|
+
}]);
|
|
87
|
+
$.log.debug(msg);
|
|
88
|
+
}
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
90
|
+
async function test() {
|
|
91
|
+
var config = {
|
|
92
|
+
"name": "name",
|
|
93
|
+
"title": "名称",
|
|
94
|
+
"description": "",
|
|
95
|
+
"type": "string",
|
|
96
|
+
"dataType": "varchar",
|
|
97
|
+
"string": {
|
|
98
|
+
"notEmpty": true
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
var ck = new Check(config);
|
|
102
|
+
var msg = ck.run("");
|
|
103
|
+
$.log.debug(msg);
|
|
104
|
+
}
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
//
|
|
122
|
-
//
|
|
123
|
-
//
|
|
124
|
-
//
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
106
|
+
async function test() {
|
|
107
|
+
var config = {
|
|
108
|
+
title: "点赞",
|
|
109
|
+
name: "zan",
|
|
110
|
+
type: "object",
|
|
111
|
+
object: [{
|
|
112
|
+
title: "数量",
|
|
113
|
+
name: "num",
|
|
114
|
+
type: "number",
|
|
115
|
+
number: {
|
|
116
|
+
range: [3, 10]
|
|
117
|
+
}
|
|
118
|
+
}]
|
|
119
|
+
};
|
|
120
|
+
var ck = new Check(config);
|
|
121
|
+
// var msg = ck.run(["成员1", "成员2"]);
|
|
122
|
+
// $.log.debug(msg);
|
|
123
|
+
// msg = ck.run([1, 2]);
|
|
124
|
+
// $.log.debug(msg);
|
|
125
|
+
var msg = ck.run({
|
|
126
|
+
num: 2
|
|
127
|
+
});
|
|
128
|
+
$.log.debug(msg);
|
|
129
|
+
}
|
|
130
130
|
test();
|