tools-for-js 1.4.1 → 1.5.0
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 +3 -0
- package/lib/index.js +56 -1
- package/lib/utils/random.js +26 -1
- package/lib/utils/regexp.js +34 -0
- package/lib/utils/string.js +156 -53
- package/package.json +2 -2
package/README.md
CHANGED
package/lib/index.js
CHANGED
|
@@ -27,18 +27,48 @@ Object.defineProperty(exports, "arrayToTree", {
|
|
|
27
27
|
return _array.arrayToTree;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
+
Object.defineProperty(exports, "checkCode", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _string.checkCode;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "checkCrypt", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function get() {
|
|
39
|
+
return _string.checkCrypt;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "checkEmail", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function get() {
|
|
45
|
+
return _regexp.checkEmail;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
30
48
|
Object.defineProperty(exports, "checkKeyEmpty", {
|
|
31
49
|
enumerable: true,
|
|
32
50
|
get: function get() {
|
|
33
51
|
return _array.checkKeyEmpty;
|
|
34
52
|
}
|
|
35
53
|
});
|
|
54
|
+
Object.defineProperty(exports, "checkMobile", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function get() {
|
|
57
|
+
return _regexp.checkMobile;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
36
60
|
Object.defineProperty(exports, "checkPwdStrength", {
|
|
37
61
|
enumerable: true,
|
|
38
62
|
get: function get() {
|
|
39
63
|
return _string.checkPwdStrength;
|
|
40
64
|
}
|
|
41
65
|
});
|
|
66
|
+
Object.defineProperty(exports, "checkSports", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function get() {
|
|
69
|
+
return _regexp.checkSports;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
42
72
|
Object.defineProperty(exports, "convertSmallHump", {
|
|
43
73
|
enumerable: true,
|
|
44
74
|
get: function get() {
|
|
@@ -81,12 +111,24 @@ Object.defineProperty(exports, "deWeightArray", {
|
|
|
81
111
|
return _array.deWeightArray;
|
|
82
112
|
}
|
|
83
113
|
});
|
|
114
|
+
Object.defineProperty(exports, "decrypt", {
|
|
115
|
+
enumerable: true,
|
|
116
|
+
get: function get() {
|
|
117
|
+
return _string.decrypt;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
84
120
|
Object.defineProperty(exports, "deepCopy", {
|
|
85
121
|
enumerable: true,
|
|
86
122
|
get: function get() {
|
|
87
123
|
return _common.deepCopy;
|
|
88
124
|
}
|
|
89
125
|
});
|
|
126
|
+
Object.defineProperty(exports, "encrypt", {
|
|
127
|
+
enumerable: true,
|
|
128
|
+
get: function get() {
|
|
129
|
+
return _string.encrypt;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
90
132
|
Object.defineProperty(exports, "exactAdd", {
|
|
91
133
|
enumerable: true,
|
|
92
134
|
get: function get() {
|
|
@@ -99,6 +141,12 @@ Object.defineProperty(exports, "formatDate", {
|
|
|
99
141
|
return _time.formatDate;
|
|
100
142
|
}
|
|
101
143
|
});
|
|
144
|
+
Object.defineProperty(exports, "fromCode", {
|
|
145
|
+
enumerable: true,
|
|
146
|
+
get: function get() {
|
|
147
|
+
return _string.fromCode;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
102
150
|
Object.defineProperty(exports, "getAfterNDays", {
|
|
103
151
|
enumerable: true,
|
|
104
152
|
get: function get() {
|
|
@@ -279,6 +327,12 @@ Object.defineProperty(exports, "timeStamp", {
|
|
|
279
327
|
return _time.timeStamp;
|
|
280
328
|
}
|
|
281
329
|
});
|
|
330
|
+
Object.defineProperty(exports, "toCode", {
|
|
331
|
+
enumerable: true,
|
|
332
|
+
get: function get() {
|
|
333
|
+
return _string.toCode;
|
|
334
|
+
}
|
|
335
|
+
});
|
|
282
336
|
Object.defineProperty(exports, "transformDate", {
|
|
283
337
|
enumerable: true,
|
|
284
338
|
get: function get() {
|
|
@@ -304,4 +358,5 @@ var _calculate = require("./utils/calculate");
|
|
|
304
358
|
var _common = require("./utils/common");
|
|
305
359
|
var _string = require("./utils/string");
|
|
306
360
|
var _random = require("./utils/random");
|
|
307
|
-
var _object = require("./utils/object");
|
|
361
|
+
var _object = require("./utils/object");
|
|
362
|
+
var _regexp = require("./utils/regexp");
|
package/lib/utils/random.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.randomCode = exports.createUUID = void 0;
|
|
7
7
|
exports.randomColor = randomColor;
|
|
8
|
-
exports.randomNumEnum = exports.randomNum = exports.randomMac = exports.randomIntRange = exports.randomIndex = exports.randomEnum = void 0;
|
|
8
|
+
exports.randomUserAgent = exports.randomNumEnum = exports.randomNum = exports.randomMac = exports.randomIp = exports.randomIntRange = exports.randomIndex = exports.randomEnum = void 0;
|
|
9
9
|
/*******
|
|
10
10
|
* @description: 随机索引
|
|
11
11
|
* @author: 琴时
|
|
@@ -152,4 +152,29 @@ var randomNumEnum = exports.randomNumEnum = function randomNumEnum(array, num) {
|
|
|
152
152
|
*/
|
|
153
153
|
var randomIntRange = exports.randomIntRange = function randomIntRange(min, max) {
|
|
154
154
|
return randomIndex(max - min + 1) + min;
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
/*******
|
|
158
|
+
* @description: 随机浏览器请求头
|
|
159
|
+
* @author: 琴时
|
|
160
|
+
* @param {*} platform
|
|
161
|
+
* @return {*}
|
|
162
|
+
*/
|
|
163
|
+
var randomUserAgent = exports.randomUserAgent = function randomUserAgent() {
|
|
164
|
+
var platform = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'pc';
|
|
165
|
+
//浏览器库
|
|
166
|
+
var userAgents = ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0) ,Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b13pre) Gecko/20110307 Firefox/4.0b13pre', 'Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6', 'Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)', 'Opera/9.25 (Windows NT 5.1; U; en), Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'];
|
|
167
|
+
// 移动端设备
|
|
168
|
+
var mobileUserAgents = ['MiFit6.6.2 (Mi 10; Android 11; Density/2.75)', 'MiFit6.6.2 (MI 9 Transparent Edition; Android 9; Density/2.5687501)'];
|
|
169
|
+
var UserAgents = platform === 'pc' ? userAgents : mobileUserAgents;
|
|
170
|
+
return UserAgents[Math.floor(Math.random() * (0 - UserAgents.length) + UserAgents.length)];
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
/*******
|
|
174
|
+
* @description: 随机ip
|
|
175
|
+
* @author: 琴时
|
|
176
|
+
* @return {*}
|
|
177
|
+
*/
|
|
178
|
+
var randomIp = exports.randomIp = function randomIp() {
|
|
179
|
+
return Math.floor(Math.random() * (10 - 255) + 255) + '.' + Math.floor(Math.random() * (10 - 255) + 255) + '.' + Math.floor(Math.random() * (10 - 255) + 255) + '.' + Math.floor(Math.random() * (10 - 255) + 255);
|
|
155
180
|
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkSports = exports.checkMobile = exports.checkEmail = void 0;
|
|
7
|
+
/*******
|
|
8
|
+
* @description: 验证手机号
|
|
9
|
+
* @author: 琴时
|
|
10
|
+
* @return {*}
|
|
11
|
+
*/
|
|
12
|
+
var checkMobile = exports.checkMobile = function checkMobile(value) {
|
|
13
|
+
var pattern = /^\d{11}$/;
|
|
14
|
+
return pattern.test(value);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/*******
|
|
18
|
+
* @description: 验证邮箱
|
|
19
|
+
* @author: 琴时
|
|
20
|
+
* @return {*}
|
|
21
|
+
*/
|
|
22
|
+
var checkEmail = exports.checkEmail = function checkEmail(value) {
|
|
23
|
+
var pattern = /^\s*\w+(?:\.{0,1}[\w-]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*\.[a-zA-Z]+\s*$/;
|
|
24
|
+
return pattern.test(value);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/*******
|
|
28
|
+
* @description: 验证运动账号
|
|
29
|
+
* @author: 琴时
|
|
30
|
+
* @return {*}
|
|
31
|
+
*/
|
|
32
|
+
var checkSports = exports.checkSports = function checkSports(value) {
|
|
33
|
+
return checkMobile(value) || checkEmail(value);
|
|
34
|
+
};
|
package/lib/utils/string.js
CHANGED
|
@@ -3,67 +3,104 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getStrLength = exports.
|
|
6
|
+
exports.getStrLength = exports.fromCode = exports.encrypt = exports.decrypt = exports.checkPwdStrength = exports.checkCrypt = exports.checkCode = void 0;
|
|
7
7
|
exports.replacePath = replacePath;
|
|
8
8
|
exports.splitString = splitString;
|
|
9
9
|
exports.splitToFileName = splitToFileName;
|
|
10
|
+
exports.toCode = void 0;
|
|
11
|
+
var _random = require("./random");
|
|
10
12
|
var _utf8_encode = function _utf8_encode(string) {
|
|
13
|
+
string = string ? string.toString() : '';
|
|
11
14
|
string = string.replace(/\r\n/g, '\n');
|
|
12
|
-
var
|
|
15
|
+
var utf_text = '';
|
|
13
16
|
for (var n = 0; n < string.length; n++) {
|
|
14
17
|
var c = string.charCodeAt(n);
|
|
15
18
|
if (c < 128) {
|
|
16
|
-
|
|
19
|
+
utf_text += String.fromCharCode(c);
|
|
17
20
|
} else if (c > 127 && c < 2048) {
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
utf_text += String.fromCharCode(c >> 6 | 192);
|
|
22
|
+
utf_text += String.fromCharCode(c & 63 | 128);
|
|
20
23
|
} else {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
utf_text += String.fromCharCode(c >> 12 | 224);
|
|
25
|
+
utf_text += String.fromCharCode(c >> 6 & 63 | 128);
|
|
26
|
+
utf_text += String.fromCharCode(c & 63 | 128);
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
|
-
return
|
|
29
|
+
return utf_text;
|
|
27
30
|
};
|
|
28
|
-
var _utf8_decode = function _utf8_decode(
|
|
31
|
+
var _utf8_decode = function _utf8_decode(utf_text) {
|
|
32
|
+
utf_text = utf_text ? utf_text.toString() : '';
|
|
29
33
|
var string = '';
|
|
30
34
|
var i = 0;
|
|
31
|
-
var c = 0;
|
|
32
35
|
var c1 = 0;
|
|
33
36
|
var c2 = 0;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
string += String.fromCharCode(c);
|
|
37
|
+
while (i < utf_text.length) {
|
|
38
|
+
c1 = utf_text.charCodeAt(i);
|
|
39
|
+
if (c1 < 128) {
|
|
40
|
+
string += String.fromCharCode(c1);
|
|
39
41
|
i++;
|
|
40
|
-
} else if (
|
|
41
|
-
c2 =
|
|
42
|
-
string += String.fromCharCode((
|
|
42
|
+
} else if (c1 > 191 && c1 < 224) {
|
|
43
|
+
c2 = utf_text.charCodeAt(i + 1);
|
|
44
|
+
string += String.fromCharCode((c1 & 31) << 6 | c2 & 63);
|
|
43
45
|
i += 2;
|
|
44
46
|
} else {
|
|
45
|
-
c2 =
|
|
46
|
-
c3 =
|
|
47
|
-
string += String.fromCharCode((
|
|
47
|
+
c2 = utf_text.charCodeAt(i + 1);
|
|
48
|
+
var c3 = utf_text.charCodeAt(i + 2);
|
|
49
|
+
string += String.fromCharCode((c1 & 15) << 12 | (c2 & 63) << 6 | c3 & 63);
|
|
48
50
|
i += 3;
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
return string;
|
|
52
54
|
};
|
|
55
|
+
|
|
56
|
+
/*******
|
|
57
|
+
* @description: 字符加密
|
|
58
|
+
* @author: 琴时
|
|
59
|
+
* @param {String|Number} input
|
|
60
|
+
* @return {String}
|
|
61
|
+
*/
|
|
62
|
+
var encrypt = exports.encrypt = function encrypt(input, key) {
|
|
63
|
+
if (!input) return '';
|
|
64
|
+
// 取65位字符
|
|
65
|
+
var _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
|
66
|
+
var output = '';
|
|
67
|
+
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
|
|
68
|
+
var i = 0;
|
|
69
|
+
input = _utf8_encode(input);
|
|
70
|
+
input = "".concat((0, _random.randomCode)(6), ":").concat(key, ":").concat(input);
|
|
71
|
+
while (i < input.length) {
|
|
72
|
+
chr1 = input.charCodeAt(i++);
|
|
73
|
+
chr2 = input.charCodeAt(i++);
|
|
74
|
+
chr3 = input.charCodeAt(i++);
|
|
75
|
+
enc1 = chr1 >> 2;
|
|
76
|
+
enc2 = (chr1 & 3) << 4 | chr2 >> 4;
|
|
77
|
+
enc3 = (chr2 & 15) << 2 | chr3 >> 6;
|
|
78
|
+
enc4 = chr3 & 63;
|
|
79
|
+
if (isNaN(chr2)) {
|
|
80
|
+
enc3 = enc4 = 64;
|
|
81
|
+
} else if (isNaN(chr3)) {
|
|
82
|
+
enc4 = 64;
|
|
83
|
+
}
|
|
84
|
+
output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
|
|
85
|
+
}
|
|
86
|
+
return output;
|
|
87
|
+
};
|
|
88
|
+
|
|
53
89
|
/*******
|
|
54
|
-
* @description:
|
|
90
|
+
* @description: 字符解密
|
|
55
91
|
* @author: 琴时
|
|
56
92
|
* @param {String} input
|
|
57
93
|
* @return {String}
|
|
58
94
|
*/
|
|
59
|
-
var
|
|
95
|
+
var decrypt = exports.decrypt = function decrypt(input, key) {
|
|
96
|
+
// 取65位字符
|
|
60
97
|
var _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
|
61
98
|
var output = '';
|
|
62
99
|
var chr1, chr2, chr3;
|
|
63
100
|
var enc1, enc2, enc3, enc4;
|
|
64
101
|
var i = 0;
|
|
65
|
-
input = input.toString();
|
|
66
|
-
input
|
|
102
|
+
input = input ? input.toString() : '';
|
|
103
|
+
input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
|
|
67
104
|
while (i < input.length) {
|
|
68
105
|
enc1 = _keyStr.indexOf(input.charAt(i++));
|
|
69
106
|
enc2 = _keyStr.indexOf(input.charAt(i++));
|
|
@@ -81,36 +118,21 @@ var decode = exports.decode = function decode(input) {
|
|
|
81
118
|
}
|
|
82
119
|
}
|
|
83
120
|
output = _utf8_decode(output);
|
|
84
|
-
|
|
121
|
+
var symbol = ":".concat(key, ":"); // 盐字段切割符号
|
|
122
|
+
return output.split(symbol)[1] || '';
|
|
85
123
|
};
|
|
124
|
+
|
|
86
125
|
/*******
|
|
87
|
-
* @description:
|
|
126
|
+
* @description: 校验加密字符
|
|
88
127
|
* @author: 琴时
|
|
89
|
-
* @param {String}
|
|
90
|
-
* @
|
|
128
|
+
* @param {String|Number} text
|
|
129
|
+
* @param {String} crypt
|
|
130
|
+
* @param {*} key
|
|
131
|
+
* @return {Boolean}
|
|
91
132
|
*/
|
|
92
|
-
var
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
|
|
96
|
-
var i = 0;
|
|
97
|
-
input = _utf8_encode(input.toString());
|
|
98
|
-
while (i < input.length) {
|
|
99
|
-
chr1 = input.charCodeAt(i++);
|
|
100
|
-
chr2 = input.charCodeAt(i++);
|
|
101
|
-
chr3 = input.charCodeAt(i++);
|
|
102
|
-
enc1 = chr1 >> 2;
|
|
103
|
-
enc2 = (chr1 & 3) << 4 | chr2 >> 4;
|
|
104
|
-
enc3 = (chr2 & 15) << 2 | chr3 >> 6;
|
|
105
|
-
enc4 = chr3 & 63;
|
|
106
|
-
if (isNaN(chr2)) {
|
|
107
|
-
enc3 = enc4 = 64;
|
|
108
|
-
} else if (isNaN(chr3)) {
|
|
109
|
-
enc4 = 64;
|
|
110
|
-
}
|
|
111
|
-
output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
|
|
112
|
-
}
|
|
113
|
-
return output;
|
|
133
|
+
var checkCrypt = exports.checkCrypt = function checkCrypt(text, crypt, key) {
|
|
134
|
+
text = text ? text.toString() : undefined;
|
|
135
|
+
return text === decrypt(crypt, key);
|
|
114
136
|
};
|
|
115
137
|
|
|
116
138
|
/*******
|
|
@@ -206,4 +228,85 @@ function splitToFileName(path) {
|
|
|
206
228
|
var lastIndex = path.lastIndexOf('/');
|
|
207
229
|
if (lastIndex === -1) return path;
|
|
208
230
|
return path.substring(lastIndex + 1);
|
|
209
|
-
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/*******
|
|
234
|
+
* @description: Unicode加密方式
|
|
235
|
+
* @author: 琴时
|
|
236
|
+
* @param {String|Number} params
|
|
237
|
+
* @return {String}
|
|
238
|
+
*/
|
|
239
|
+
var toCode = exports.toCode = function toCode(params) {
|
|
240
|
+
params = params ? params.toString() : ''; //避免参数不是字符串
|
|
241
|
+
/* 定义密钥 */
|
|
242
|
+
var num = '0123456789';
|
|
243
|
+
var lower = 'abcdefghijklmnopqrstuvwxyz';
|
|
244
|
+
var capital = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
245
|
+
var character = num + lower + capital; //构建秘钥数组
|
|
246
|
+
var len = character.length; //秘钥长度
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* 定义临时变量
|
|
250
|
+
* unicodeValue:最终加密值
|
|
251
|
+
*/
|
|
252
|
+
var unicodeValue = '';
|
|
253
|
+
/* 遍历待加密字符串 */
|
|
254
|
+
for (var i = 0; i < params.length; i++) {
|
|
255
|
+
var b = params.charCodeAt(i); //逐个提取每个字符,并获取Unicode编码值
|
|
256
|
+
var b1 = b % len; //第一轮求余数
|
|
257
|
+
b = (b - b1) / len; //求最大倍数
|
|
258
|
+
var b2 = b % len; //第二轮求余数
|
|
259
|
+
b = (b - b2) / len; //求最大倍数
|
|
260
|
+
var b3 = b % len; //第三轮求余数
|
|
261
|
+
unicodeValue += character[b3] + character[b2] + character[b1]; //根据余数值映射到密钥中对应下标位置的字符
|
|
262
|
+
}
|
|
263
|
+
return unicodeValue; //返回这些映射的字符(加密后)
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
/*******
|
|
267
|
+
* @description:Unicode解密方式
|
|
268
|
+
* @author: 琴时
|
|
269
|
+
* @param {String} params
|
|
270
|
+
* @return {String}
|
|
271
|
+
*/
|
|
272
|
+
var fromCode = exports.fromCode = function fromCode(params) {
|
|
273
|
+
params = params ? params.toString() : ''; //避免参数不是字符串
|
|
274
|
+
/* 定义密钥 */
|
|
275
|
+
var num = '0123456789';
|
|
276
|
+
var lower = 'abcdefghijklmnopqrstuvwxyz';
|
|
277
|
+
var capital = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
278
|
+
var character = num + lower + capital; //构建秘钥数组
|
|
279
|
+
var len = character.length; //秘钥长度
|
|
280
|
+
var result = '';
|
|
281
|
+
var b = 0;
|
|
282
|
+
//计算加密字符串包含的字符数,创建一个x位的数组
|
|
283
|
+
var x = Math.ceil(params.length / 3);
|
|
284
|
+
var arr = new Array(x);
|
|
285
|
+
for (var i = 0; i < arr.length; i++) {
|
|
286
|
+
//以数组的长度循环次数,遍历加密字符串
|
|
287
|
+
var b1 = character.indexOf(params.charAt(b)); //截取周期内第d个字符串,计算在密钥中的索引值
|
|
288
|
+
b++;
|
|
289
|
+
var b2 = character.indexOf(params.charAt(b)); //截取周期内第d个字符串,计算在密钥中的索引值
|
|
290
|
+
b++;
|
|
291
|
+
var b3 = character.indexOf(params.charAt(b)); //截取周期内第d个字符串,计算在密钥中的索引值
|
|
292
|
+
b++;
|
|
293
|
+
arr[i] = b1 * len * len + b2 * len + b3; //利用索引值,反推被加密字符的Unicode编码值
|
|
294
|
+
}
|
|
295
|
+
// 将数组转换成字符串连接起来
|
|
296
|
+
var str1 = arr.join(',');
|
|
297
|
+
//用fromCharCode()算出字符串
|
|
298
|
+
result = eval('String.fromCharCode(' + str1 + ')');
|
|
299
|
+
return result; //返回被解密的字符串
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
/*******
|
|
303
|
+
* @description: 校验数据是否一致
|
|
304
|
+
* @author: 琴时
|
|
305
|
+
* @param {String} arg1 [未加密]
|
|
306
|
+
* @param {String} arg2 [已加密]
|
|
307
|
+
* @return {boolean} 返回校验结果<布尔值>
|
|
308
|
+
*/
|
|
309
|
+
var checkCode = exports.checkCode = function checkCode(arg1, arg2) {
|
|
310
|
+
arg1 = arg1 ? arg1.toString() : '';
|
|
311
|
+
return arg1 === fromCode(arg2);
|
|
312
|
+
};
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tools-for-js",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "基于babel构建的javascript工具库",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"start": "
|
|
7
|
+
"start": "nodemon",
|
|
8
8
|
"build": "sh build/build.sh",
|
|
9
9
|
"release": "sh build/release.sh"
|
|
10
10
|
},
|