ph-utils 0.2.16 → 0.2.19

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/lib/index.js CHANGED
@@ -22,14 +22,14 @@ exports.isBlank = isBlank;
22
22
  * @returns 屏蔽后的手机号,例如:123 **** 1234
23
23
  */
24
24
  function shieldMobile(mobile) {
25
- let x1 = Math.round(mobile.length / 2);
26
- let x2 = Math.round(x1 / 2);
25
+ let x1 = Math.floor(mobile.length / 2);
26
+ let x2 = Math.ceil(x1 / 2);
27
27
  let shields = [' '];
28
- for (let i = 0; i < x1; i++) {
28
+ for (let i = 0; i < x1 - 1; i++) {
29
29
  shields.push('*');
30
30
  }
31
31
  shields.push(' ');
32
- return mobile.substring(0, x2) + shields.join('') + mobile.substring(x2 + x1);
32
+ return (mobile.substring(0, x2) + shields.join('') + mobile.substring(x2 + x1 - 1));
33
33
  }
34
34
  exports.shieldMobile = shieldMobile;
35
35
  /**
package/lib/index_m.js CHANGED
@@ -18,14 +18,14 @@ export function isBlank(str, ignoreWhitespace = true) {
18
18
  * @returns 屏蔽后的手机号,例如:123 **** 1234
19
19
  */
20
20
  export function shieldMobile(mobile) {
21
- let x1 = Math.round(mobile.length / 2);
22
- let x2 = Math.round(x1 / 2);
21
+ let x1 = Math.floor(mobile.length / 2);
22
+ let x2 = Math.ceil(x1 / 2);
23
23
  let shields = [' '];
24
- for (let i = 0; i < x1; i++) {
24
+ for (let i = 0; i < x1 - 1; i++) {
25
25
  shields.push('*');
26
26
  }
27
27
  shields.push(' ');
28
- return mobile.substring(0, x2) + shields.join('') + mobile.substring(x2 + x1);
28
+ return (mobile.substring(0, x2) + shields.join('') + mobile.substring(x2 + x1 - 1));
29
29
  }
30
30
  /**
31
31
  * 验证参数是否是数字
@@ -29,7 +29,7 @@ declare class Validator {
29
29
  */
30
30
  constructor(schemas: SchemaType[]);
31
31
  /**
32
- * 进行数据验证,同时根据 type 进行数据类型转换
32
+ * 进行数据验证
33
33
  * @param data 待验证的数据
34
34
  * @returns
35
35
  */
@@ -39,7 +39,7 @@ declare class Validator {
39
39
  * @param key 指定待验证的 key
40
40
  * @param value 待验证的数据
41
41
  */
42
- validateKey(key: string, value: any): Promise<boolean>;
42
+ validateKey(key: string, value: any, data?: any): Promise<boolean>;
43
43
  private _validateRule;
44
44
  private _parseStringRule;
45
45
  }
package/lib/validator.js CHANGED
@@ -56,9 +56,6 @@ class Validator {
56
56
  for (let schema of schemas) {
57
57
  // 解析规则
58
58
  let rules = [];
59
- if (schema.required === true) {
60
- rules.push(this._parseStringRule('required'));
61
- }
62
59
  let rule = schema.rules;
63
60
  if (typeof rule === 'string') {
64
61
  rules = rules.concat(this._parseStringRule(rule));
@@ -66,7 +63,7 @@ class Validator {
66
63
  else if (rule instanceof Array) {
67
64
  for (let ruleItem of rule) {
68
65
  if (typeof ruleItem === 'string') {
69
- rules = rules.concat(this._parseStringRule(ruleItem));
66
+ rules.push(...this._parseStringRule(ruleItem));
70
67
  }
71
68
  else if (ruleItem instanceof RegExp ||
72
69
  typeof ruleItem === 'function') {
@@ -74,7 +71,7 @@ class Validator {
74
71
  }
75
72
  else {
76
73
  if (typeof ruleItem.rule === 'string') {
77
- rules = rules.concat(this._parseStringRule(ruleItem.rule, ruleItem.message));
74
+ rules.push(...this._parseStringRule(ruleItem.rule, ruleItem.message));
78
75
  }
79
76
  else {
80
77
  rules.push({
@@ -88,12 +85,16 @@ class Validator {
88
85
  else {
89
86
  rules.push({ rule, message: defaultMsg });
90
87
  }
88
+ if (schema.required === true &&
89
+ rules.findIndex((r) => r.rule === 'required') === -1) {
90
+ rules.push(this._parseStringRule('required'));
91
+ }
91
92
  parsedRules[schema.key] = rules;
92
93
  }
93
94
  this.rules = parsedRules;
94
95
  }
95
96
  /**
96
- * 进行数据验证,同时根据 type 进行数据类型转换
97
+ * 进行数据验证
97
98
  * @param data 待验证的数据
98
99
  * @returns
99
100
  */
@@ -124,10 +125,10 @@ class Validator {
124
125
  * @param key 指定待验证的 key
125
126
  * @param value 待验证的数据
126
127
  */
127
- validateKey(key, value) {
128
+ validateKey(key, value, data) {
128
129
  return new Promise((resolve, reject) => {
129
130
  let keyRules = this.rules[key];
130
- let errMsg = this._validateRule(keyRules, value, null);
131
+ let errMsg = this._validateRule(keyRules, value, data);
131
132
  if (errMsg !== '') {
132
133
  errMsg = errMsg.replace('%s', key);
133
134
  reject(new ValidateError(key, errMsg));
@@ -193,7 +194,7 @@ class Validator {
193
194
  }
194
195
  else if (rule === 'required') {
195
196
  rrule = 'required';
196
- message = defaultMsgs.required;
197
+ message = ruleErrMsg || defaultMsgs.required;
197
198
  }
198
199
  else if (Object.prototype.hasOwnProperty.call(ruleRegexs, r)) {
199
200
  rrule = ruleRegexs[r];
@@ -29,7 +29,7 @@ declare class Validator {
29
29
  */
30
30
  constructor(schemas: SchemaType[]);
31
31
  /**
32
- * 进行数据验证,同时根据 type 进行数据类型转换
32
+ * 进行数据验证
33
33
  * @param data 待验证的数据
34
34
  * @returns
35
35
  */
@@ -39,7 +39,7 @@ declare class Validator {
39
39
  * @param key 指定待验证的 key
40
40
  * @param value 待验证的数据
41
41
  */
42
- validateKey(key: string, value: any): Promise<boolean>;
42
+ validateKey(key: string, value: any, data?: any): Promise<boolean>;
43
43
  private _validateRule;
44
44
  private _parseStringRule;
45
45
  }
@@ -52,9 +52,6 @@ class Validator {
52
52
  for (let schema of schemas) {
53
53
  // 解析规则
54
54
  let rules = [];
55
- if (schema.required === true) {
56
- rules.push(this._parseStringRule('required'));
57
- }
58
55
  let rule = schema.rules;
59
56
  if (typeof rule === 'string') {
60
57
  rules = rules.concat(this._parseStringRule(rule));
@@ -62,7 +59,7 @@ class Validator {
62
59
  else if (rule instanceof Array) {
63
60
  for (let ruleItem of rule) {
64
61
  if (typeof ruleItem === 'string') {
65
- rules = rules.concat(this._parseStringRule(ruleItem));
62
+ rules.push(...this._parseStringRule(ruleItem));
66
63
  }
67
64
  else if (ruleItem instanceof RegExp ||
68
65
  typeof ruleItem === 'function') {
@@ -70,7 +67,7 @@ class Validator {
70
67
  }
71
68
  else {
72
69
  if (typeof ruleItem.rule === 'string') {
73
- rules = rules.concat(this._parseStringRule(ruleItem.rule, ruleItem.message));
70
+ rules.push(...this._parseStringRule(ruleItem.rule, ruleItem.message));
74
71
  }
75
72
  else {
76
73
  rules.push({
@@ -84,12 +81,16 @@ class Validator {
84
81
  else {
85
82
  rules.push({ rule, message: defaultMsg });
86
83
  }
84
+ if (schema.required === true &&
85
+ rules.findIndex((r) => r.rule === 'required') === -1) {
86
+ rules.push(this._parseStringRule('required'));
87
+ }
87
88
  parsedRules[schema.key] = rules;
88
89
  }
89
90
  this.rules = parsedRules;
90
91
  }
91
92
  /**
92
- * 进行数据验证,同时根据 type 进行数据类型转换
93
+ * 进行数据验证
93
94
  * @param data 待验证的数据
94
95
  * @returns
95
96
  */
@@ -120,10 +121,10 @@ class Validator {
120
121
  * @param key 指定待验证的 key
121
122
  * @param value 待验证的数据
122
123
  */
123
- validateKey(key, value) {
124
+ validateKey(key, value, data) {
124
125
  return new Promise((resolve, reject) => {
125
126
  let keyRules = this.rules[key];
126
- let errMsg = this._validateRule(keyRules, value, null);
127
+ let errMsg = this._validateRule(keyRules, value, data);
127
128
  if (errMsg !== '') {
128
129
  errMsg = errMsg.replace('%s', key);
129
130
  reject(new ValidateError(key, errMsg));
@@ -189,7 +190,7 @@ class Validator {
189
190
  }
190
191
  else if (rule === 'required') {
191
192
  rrule = 'required';
192
- message = defaultMsgs.required;
193
+ message = ruleErrMsg || defaultMsgs.required;
193
194
  }
194
195
  else if (Object.prototype.hasOwnProperty.call(ruleRegexs, r)) {
195
196
  rrule = ruleRegexs[r];
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "module": "lib/index_m.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "browser": "lib/index_m.js",
8
- "version": "0.2.16",
8
+ "version": "0.2.19",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git+https//gitee.com/towardly/ph.git",