@lambo-design/shared 1.0.0-beta.81 → 1.0.0-beta.83

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambo-design/shared",
3
- "version": "1.0.0-beta.81",
3
+ "version": "1.0.0-beta.83",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "author": "lambo",
package/utils/assist.js CHANGED
@@ -116,3 +116,134 @@ export function isJson(arg) {
116
116
  export function isObject(item) {
117
117
  return (item && typeof item === 'object' && !Array.isArray(item));
118
118
  }
119
+
120
+
121
+ export const checkPhone = function (str) {
122
+ var reg = /^1[3456789]\d{9}$/
123
+ // ^1 以1开头
124
+ // [3456789] 第2位,使用原子表里的任意一个原子都可以
125
+ // \d{9}$ 第三位 朝后可以是任意数字 并且最后结尾必须是数字
126
+ if (reg.test(str)) {
127
+ return true
128
+ } else {
129
+ return false
130
+ }
131
+ }
132
+
133
+ export function checkIdCard(idcard) {
134
+ let Errors = new Array(
135
+ '验证通过!',
136
+ '身份证号码位数不对!',
137
+ '身份证号码出生日期超出范围或含有非法字符!',
138
+ '身份证号码校验错误!',
139
+ '身份证地区非法!',
140
+ )
141
+ let area = {
142
+ 11: '北京',
143
+ 12: '天津',
144
+ 13: '河北',
145
+ 14: '山西',
146
+ 15: '内蒙古',
147
+ 21: '辽宁',
148
+ 22: '吉林',
149
+ 23: '黑龙江',
150
+ 31: '上海',
151
+ 32: '江苏',
152
+ 33: '浙江',
153
+ 34: '安徽',
154
+ 35: '福建',
155
+ 36: '江西',
156
+ 37: '山东',
157
+ 41: '河南',
158
+ 42: '湖北',
159
+ 43: '湖南',
160
+ 44: '广东',
161
+ 45: '广西',
162
+ 46: '海南',
163
+ 50: '重庆',
164
+ 51: '四川',
165
+ 52: '贵州',
166
+ 53: '云南',
167
+ 54: '西藏',
168
+ 61: '陕西',
169
+ 62: '甘肃',
170
+ 63: '青海',
171
+ 64: '宁夏',
172
+ 65: '新疆',
173
+ 71: '台湾',
174
+ 81: '香港',
175
+ 82: '澳门',
176
+ 91: '国外',
177
+ }
178
+ let Y, JYM
179
+ let S, M, ereg
180
+ let idcard_array = new Array()
181
+ idcard_array = idcard.split('')
182
+ //地区检验
183
+ if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4]
184
+ //身份号码位数及格式检验
185
+ switch (idcard.length) {
186
+ case 15:
187
+ if (
188
+ (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 ||
189
+ ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 &&
190
+ (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0)
191
+ ) {
192
+ ereg =
193
+ /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/ //测试出生日期的合法性
194
+ } else {
195
+ ereg =
196
+ /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/ //测试出生日期的合法性
197
+ }
198
+ if (ereg.test(idcard)) {
199
+ return Errors[0]
200
+ } else {
201
+ return Errors[2]
202
+ }
203
+ case 18:
204
+ if (
205
+ parseInt(idcard.substr(6, 4)) % 4 == 0 ||
206
+ (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0)
207
+ ) {
208
+ ereg =
209
+ /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/ //闰年出生日期的合法性正则表达式
210
+ } else {
211
+ ereg =
212
+ /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/ //平年出生日期的合法性正则表达式
213
+ }
214
+ if (ereg.test(idcard)) {
215
+ //测试出生日期的合法性
216
+ //计算校验位
217
+ S =
218
+ (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 +
219
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 +
220
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 +
221
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 +
222
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 +
223
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 +
224
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 +
225
+ parseInt(idcard_array[7]) * 1 +
226
+ parseInt(idcard_array[8]) * 6 +
227
+ parseInt(idcard_array[9]) * 3
228
+ Y = S % 11
229
+ M = 'F'
230
+ JYM = '10X98765432'
231
+ M = JYM.substr(Y, 1) //判断校验位
232
+ if (M == idcard_array[17]) return Errors[0] //检测ID的校验位
233
+ else return Errors[3]
234
+ } else return Errors[2]
235
+ default:
236
+ return Errors[1]
237
+ }
238
+ }
239
+
240
+ export function getBirthday(a) {
241
+ if (15 == a.length || 18 == a.length) {
242
+ let left = a.length - 12
243
+ let right = a.length - 4
244
+ let b = a.slice(left, right)
245
+ if (8 == b.length) {
246
+ return b.substring(0, 4) + '-' + b.substring(4, 6) + '-' + b.substring(6)
247
+ } else return '1970-01-01' //0;
248
+ } else return '1970-01-01' //1;
249
+ }
package/utils/base64.js CHANGED
@@ -1,126 +1,126 @@
1
- let Base64 = {
2
- Base64Chars:
3
- "abcdefghijklmnopqrstuv" +
4
- "wxyzABCDEFGHIJKLMNOP" +
5
- "QRSTUVWXYZ0123456789@*-",
6
- /**
7
- * Encode a string to a Base64 string follow Bse64 regular.
8
- * @param s, a normal string
9
- * @return a Base64 string
10
- */
11
- encode: function (s) {
12
- if (!s || s.length == 0) return s;
13
-
14
- var d = "";
15
- var b = this.ucs2_utf8(s);
16
- var b0, b1, b2, b3;
17
- var len = b.length;
18
- var i = 0;
19
- while (i < len) {
20
- var tmp = b[i++];
21
- b0 = (tmp & 0xfc) >> 2;
22
- b1 = (tmp & 0x03) << 4;
23
- if (i < len) {
24
- tmp = b[i++];
25
- b1 |= (tmp & 0xf0) >> 4;
26
- b2 = (tmp & 0x0f) << 2;
27
- if (i < len) {
28
- tmp = b[i++];
29
- b2 |= (tmp & 0xc0) >> 6;
30
- b3 = tmp & 0x3f;
31
- } else {
32
- b3 = 64; // 1 byte "-" is supplement
33
-
34
- }
35
- } else {
36
- b2 = b3 = 64; // 2 bytes "-" are supplement
37
-
38
- }
39
-
40
- d += this.Base64Chars.charAt(b0);
41
- d += this.Base64Chars.charAt(b1);
42
- d += this.Base64Chars.charAt(b2);
43
- d += this.Base64Chars.charAt(b3);
44
- }
45
-
46
- return d;
47
-
48
- },
49
-
50
- /**
51
- * Encodes a ucs2 string to a utf8 integer array.
52
- * @param s, a string
53
- * @return an integer array
54
- */
55
- ucs2_utf8: function (s) {
56
- if (!s) return null;
57
- var d = new Array();
58
- if (s == "") return d;
59
-
60
- var c = 0, i = 0, j = 0;
61
- var len = s.length;
62
- while (i < len) {
63
- c = s.charCodeAt(i++);
64
- if (c <= 0x7f) {
65
- // 1 byte
66
-
67
- d[j++] = c;
68
- } else if ((c >= 0x80) && (c <= 0x7ff)) {
69
- // 2 bytes
70
-
71
- d[j++] = ((c >> 6) & 0x1f) | 0xc0;
72
- d[j++] = (c & 0x3f) | 0x80;
73
- } else {
74
- // 3 bytes
75
-
76
- d[j++] = (c >> 12) | 0xe0;
77
- d[j++] = ((c >> 6) & 0x3f) | 0x80;
78
- d[j++] = (c & 0x3f) | 0x80;
79
- }
80
- }
81
-
82
- return d;
83
- },
84
- /**
85
- * Encodes a utf8 integer array to a ucs2 string.
86
- * @param s, an integer array
87
- * @return a string
88
- */
89
- utf8_ucs2: function (s) {
90
- if (!s) return null;
91
- var len = s.length;
92
- if (len == 0) return "";
93
-
94
- var d = "";
95
- var c = 0, i = 0, tmp = 0;
96
- while (i < len) {
97
- c = s[i++];
98
- if ((c & 0xe0) == 0xe0) {
99
- // 3 bytes
100
-
101
- tmp = (c & 0x0f) << 12;
102
- c = s[i++];
103
- tmp |= ((c & 0x3f) << 6);
104
- c = s[i++];
105
- tmp |= (c & 0x3f);
106
- } else if ((c & 0xc0) == 0xc0) {
107
- // 2 bytes
108
-
109
- tmp = (c & 0x1f) << 6;
110
- c = s[i++];
111
- tmp |= (c & 0x3f);
112
- } else {
113
- // 1 byte
114
-
115
- tmp = c;
116
- }
117
-
118
- d += String.fromCharCode(tmp);
119
- }
120
-
121
- return d;
122
- }
123
- };
124
- export {
125
- Base64
126
- }
1
+ let Base64 = {
2
+ Base64Chars:
3
+ "abcdefghijklmnopqrstuv" +
4
+ "wxyzABCDEFGHIJKLMNOP" +
5
+ "QRSTUVWXYZ0123456789@*-",
6
+ /**
7
+ * Encode a string to a Base64 string follow Bse64 regular.
8
+ * @param s, a normal string
9
+ * @return a Base64 string
10
+ */
11
+ encode: function (s) {
12
+ if (!s || s.length == 0) return s;
13
+
14
+ var d = "";
15
+ var b = this.ucs2_utf8(s);
16
+ var b0, b1, b2, b3;
17
+ var len = b.length;
18
+ var i = 0;
19
+ while (i < len) {
20
+ var tmp = b[i++];
21
+ b0 = (tmp & 0xfc) >> 2;
22
+ b1 = (tmp & 0x03) << 4;
23
+ if (i < len) {
24
+ tmp = b[i++];
25
+ b1 |= (tmp & 0xf0) >> 4;
26
+ b2 = (tmp & 0x0f) << 2;
27
+ if (i < len) {
28
+ tmp = b[i++];
29
+ b2 |= (tmp & 0xc0) >> 6;
30
+ b3 = tmp & 0x3f;
31
+ } else {
32
+ b3 = 64; // 1 byte "-" is supplement
33
+
34
+ }
35
+ } else {
36
+ b2 = b3 = 64; // 2 bytes "-" are supplement
37
+
38
+ }
39
+
40
+ d += this.Base64Chars.charAt(b0);
41
+ d += this.Base64Chars.charAt(b1);
42
+ d += this.Base64Chars.charAt(b2);
43
+ d += this.Base64Chars.charAt(b3);
44
+ }
45
+
46
+ return d;
47
+
48
+ },
49
+
50
+ /**
51
+ * Encodes a ucs2 string to a utf8 integer array.
52
+ * @param s, a string
53
+ * @return an integer array
54
+ */
55
+ ucs2_utf8: function (s) {
56
+ if (!s) return null;
57
+ var d = new Array();
58
+ if (s == "") return d;
59
+
60
+ var c = 0, i = 0, j = 0;
61
+ var len = s.length;
62
+ while (i < len) {
63
+ c = s.charCodeAt(i++);
64
+ if (c <= 0x7f) {
65
+ // 1 byte
66
+
67
+ d[j++] = c;
68
+ } else if ((c >= 0x80) && (c <= 0x7ff)) {
69
+ // 2 bytes
70
+
71
+ d[j++] = ((c >> 6) & 0x1f) | 0xc0;
72
+ d[j++] = (c & 0x3f) | 0x80;
73
+ } else {
74
+ // 3 bytes
75
+
76
+ d[j++] = (c >> 12) | 0xe0;
77
+ d[j++] = ((c >> 6) & 0x3f) | 0x80;
78
+ d[j++] = (c & 0x3f) | 0x80;
79
+ }
80
+ }
81
+
82
+ return d;
83
+ },
84
+ /**
85
+ * Encodes a utf8 integer array to a ucs2 string.
86
+ * @param s, an integer array
87
+ * @return a string
88
+ */
89
+ utf8_ucs2: function (s) {
90
+ if (!s) return null;
91
+ var len = s.length;
92
+ if (len == 0) return "";
93
+
94
+ var d = "";
95
+ var c = 0, i = 0, tmp = 0;
96
+ while (i < len) {
97
+ c = s[i++];
98
+ if ((c & 0xe0) == 0xe0) {
99
+ // 3 bytes
100
+
101
+ tmp = (c & 0x0f) << 12;
102
+ c = s[i++];
103
+ tmp |= ((c & 0x3f) << 6);
104
+ c = s[i++];
105
+ tmp |= (c & 0x3f);
106
+ } else if ((c & 0xc0) == 0xc0) {
107
+ // 2 bytes
108
+
109
+ tmp = (c & 0x1f) << 6;
110
+ c = s[i++];
111
+ tmp |= (c & 0x3f);
112
+ } else {
113
+ // 1 byte
114
+
115
+ tmp = c;
116
+ }
117
+
118
+ d += String.fromCharCode(tmp);
119
+ }
120
+
121
+ return d;
122
+ }
123
+ };
124
+ export {
125
+ Base64
126
+ }