@ivujs/i-utils 1.1.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.
Files changed (132) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -0
  3. package/dist/cjs/ID-card/index.cjs +122 -0
  4. package/dist/cjs/array/index.cjs +465 -0
  5. package/dist/cjs/clipboard/index.cjs +135 -0
  6. package/dist/cjs/color/index.cjs +210 -0
  7. package/dist/cjs/constants/date.cjs +186 -0
  8. package/dist/cjs/constants/lang.cjs +13 -0
  9. package/dist/cjs/constants/math.cjs +13 -0
  10. package/dist/cjs/constants/regexp.cjs +57 -0
  11. package/dist/cjs/constants/sort.cjs +15 -0
  12. package/dist/cjs/cookie/index.cjs +71 -0
  13. package/dist/cjs/crypto/aes/aes.cjs +533 -0
  14. package/dist/cjs/crypto/aes/index.cjs +28 -0
  15. package/dist/cjs/crypto/base32/base32.cjs +385 -0
  16. package/dist/cjs/crypto/base32/index.cjs +44 -0
  17. package/dist/cjs/crypto/base64/base64.cjs +433 -0
  18. package/dist/cjs/crypto/base64/index.cjs +64 -0
  19. package/dist/cjs/crypto/des/des.cjs +1054 -0
  20. package/dist/cjs/crypto/des/index.cjs +30 -0
  21. package/dist/cjs/crypto/md5/index.cjs +25 -0
  22. package/dist/cjs/crypto/md5/md5.cjs +944 -0
  23. package/dist/cjs/crypto/sha/sha1/index.cjs +25 -0
  24. package/dist/cjs/crypto/sha/sha1/sha1.cjs +602 -0
  25. package/dist/cjs/crypto/sha/sha256/index.cjs +46 -0
  26. package/dist/cjs/crypto/sha/sha256/sha256.cjs +654 -0
  27. package/dist/cjs/crypto/sha/sha3/index.cjs +44 -0
  28. package/dist/cjs/crypto/sha/sha3/sha3.cjs +747 -0
  29. package/dist/cjs/crypto/sha/sha512/index.cjs +88 -0
  30. package/dist/cjs/crypto/sha/sha512/sha512.cjs +1186 -0
  31. package/dist/cjs/crypto/sm/lib/asn1.cjs +167 -0
  32. package/dist/cjs/crypto/sm/lib/ec.cjs +352 -0
  33. package/dist/cjs/crypto/sm/lib/jsbn.cjs +1633 -0
  34. package/dist/cjs/crypto/sm/lib/sm3.cjs +173 -0
  35. package/dist/cjs/crypto/sm/lib/utils.cjs +198 -0
  36. package/dist/cjs/crypto/sm/sm2/index.cjs +122 -0
  37. package/dist/cjs/crypto/sm/sm2/sm2.cjs +269 -0
  38. package/dist/cjs/crypto/sm/sm3/index.cjs +15 -0
  39. package/dist/cjs/crypto/sm/sm3/sm3.cjs +103 -0
  40. package/dist/cjs/crypto/sm/sm4/index.cjs +28 -0
  41. package/dist/cjs/crypto/sm/sm4/sm4.cjs +362 -0
  42. package/dist/cjs/crypto/tea/index.cjs +26 -0
  43. package/dist/cjs/crypto/tea/tea.cjs +215 -0
  44. package/dist/cjs/date/index.cjs +1349 -0
  45. package/dist/cjs/desensitized/index.cjs +74 -0
  46. package/dist/cjs/device/index.cjs +159 -0
  47. package/dist/cjs/dom/index.cjs +176 -0
  48. package/dist/cjs/file/index.cjs +339 -0
  49. package/dist/cjs/function/index.cjs +67 -0
  50. package/dist/cjs/id/index.cjs +46 -0
  51. package/dist/cjs/index.cjs +399 -0
  52. package/dist/cjs/keycode/index.cjs +142 -0
  53. package/dist/cjs/math/index.cjs +284 -0
  54. package/dist/cjs/number/index.cjs +14 -0
  55. package/dist/cjs/object/index.cjs +216 -0
  56. package/dist/cjs/pagination/index.cjs +140 -0
  57. package/dist/cjs/random/index.cjs +25 -0
  58. package/dist/cjs/regexp/index.cjs +109 -0
  59. package/dist/cjs/storage/index.cjs +11 -0
  60. package/dist/cjs/storage/localStorage.cjs +40 -0
  61. package/dist/cjs/storage/sessionStorage.cjs +40 -0
  62. package/dist/cjs/string/index.cjs +338 -0
  63. package/dist/cjs/url/index.cjs +279 -0
  64. package/dist/cjs/validate/index.cjs +487 -0
  65. package/dist/cjs/weapp/index.cjs +151 -0
  66. package/dist/es/ID-card/index.mjs +116 -0
  67. package/dist/es/array/index.mjs +437 -0
  68. package/dist/es/clipboard/index.mjs +129 -0
  69. package/dist/es/color/index.mjs +200 -0
  70. package/dist/es/constants/date.mjs +184 -0
  71. package/dist/es/constants/lang.mjs +11 -0
  72. package/dist/es/constants/math.mjs +11 -0
  73. package/dist/es/constants/regexp.mjs +55 -0
  74. package/dist/es/constants/sort.mjs +13 -0
  75. package/dist/es/cookie/index.mjs +65 -0
  76. package/dist/es/crypto/aes/aes.mjs +529 -0
  77. package/dist/es/crypto/aes/index.mjs +25 -0
  78. package/dist/es/crypto/base32/base32.mjs +381 -0
  79. package/dist/es/crypto/base32/index.mjs +39 -0
  80. package/dist/es/crypto/base64/base64.mjs +427 -0
  81. package/dist/es/crypto/base64/index.mjs +57 -0
  82. package/dist/es/crypto/des/des.mjs +1050 -0
  83. package/dist/es/crypto/des/index.mjs +27 -0
  84. package/dist/es/crypto/md5/index.mjs +22 -0
  85. package/dist/es/crypto/md5/md5.mjs +941 -0
  86. package/dist/es/crypto/sha/sha1/index.mjs +22 -0
  87. package/dist/es/crypto/sha/sha1/sha1.mjs +599 -0
  88. package/dist/es/crypto/sha/sha256/index.mjs +41 -0
  89. package/dist/es/crypto/sha/sha256/sha256.mjs +649 -0
  90. package/dist/es/crypto/sha/sha3/index.mjs +39 -0
  91. package/dist/es/crypto/sha/sha3/sha3.mjs +742 -0
  92. package/dist/es/crypto/sha/sha512/index.mjs +79 -0
  93. package/dist/es/crypto/sha/sha512/sha512.mjs +1177 -0
  94. package/dist/es/crypto/sm/lib/asn1.mjs +164 -0
  95. package/dist/es/crypto/sm/lib/ec.mjs +349 -0
  96. package/dist/es/crypto/sm/lib/jsbn.mjs +1630 -0
  97. package/dist/es/crypto/sm/lib/sm3.mjs +170 -0
  98. package/dist/es/crypto/sm/lib/utils.mjs +186 -0
  99. package/dist/es/crypto/sm/sm2/index.mjs +111 -0
  100. package/dist/es/crypto/sm/sm2/sm2.mjs +258 -0
  101. package/dist/es/crypto/sm/sm3/index.mjs +13 -0
  102. package/dist/es/crypto/sm/sm3/sm3.mjs +99 -0
  103. package/dist/es/crypto/sm/sm4/index.mjs +25 -0
  104. package/dist/es/crypto/sm/sm4/sm4.mjs +359 -0
  105. package/dist/es/crypto/tea/index.mjs +23 -0
  106. package/dist/es/crypto/tea/tea.mjs +211 -0
  107. package/dist/es/date/index.mjs +1262 -0
  108. package/dist/es/desensitized/index.mjs +69 -0
  109. package/dist/es/device/index.mjs +145 -0
  110. package/dist/es/dom/index.mjs +164 -0
  111. package/dist/es/file/index.mjs +323 -0
  112. package/dist/es/function/index.mjs +63 -0
  113. package/dist/es/id/index.mjs +43 -0
  114. package/dist/es/index.mjs +59 -0
  115. package/dist/es/keycode/index.mjs +139 -0
  116. package/dist/es/math/index.mjs +274 -0
  117. package/dist/es/number/index.mjs +12 -0
  118. package/dist/es/object/index.mjs +203 -0
  119. package/dist/es/pagination/index.mjs +134 -0
  120. package/dist/es/random/index.mjs +22 -0
  121. package/dist/es/regexp/index.mjs +98 -0
  122. package/dist/es/storage/index.mjs +9 -0
  123. package/dist/es/storage/localStorage.mjs +35 -0
  124. package/dist/es/storage/sessionStorage.mjs +35 -0
  125. package/dist/es/string/index.mjs +321 -0
  126. package/dist/es/url/index.mjs +261 -0
  127. package/dist/es/validate/index.mjs +451 -0
  128. package/dist/es/weapp/index.mjs +140 -0
  129. package/dist/lib/index.full.esm.js +15825 -0
  130. package/dist/lib/index.full.esm.min.js +58 -0
  131. package/dist/lib/index.full.umd.js +16179 -0
  132. package/package.json +54 -0
@@ -0,0 +1,210 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * rgb颜色转hex
5
+ * @param {String} rgb rgb颜色字符串
6
+ * @returns {String} 返回生成的hex颜色
7
+ */
8
+ function rgbToHex(rgb) {
9
+ let arr = rgb.split(",");
10
+ let r = parseInt(arr[0].split("(")[1]);
11
+ let g = parseInt(arr[1]);
12
+ let b = parseInt(arr[2].split(")")[0]);
13
+ return "#" + _hex(r) + _hex(g) + _hex(b);
14
+ }
15
+
16
+ /**
17
+ * rgba颜色转hex
18
+ * @param {String} rgba rgba颜色字符串
19
+ * @returns {String} 返回生成的hex颜色
20
+ */
21
+ function rgbaToHex(rgba) {
22
+ let arr = rgba.split(",");
23
+ let r = parseInt(arr[0].split("(")[1]);
24
+ let g = parseInt(arr[1]);
25
+ let b = parseInt(arr[2]);
26
+ let a = parseFloat(arr[3].split(")")[0]);
27
+
28
+ return `#${_hex(Math.round(a * 256 - 1))}${_hex(r)}${_hex(g)}${_hex(b)}`;
29
+ }
30
+
31
+ /**
32
+ * rgba颜色转hsl
33
+ * @param {String} rgba rgb颜色字符串
34
+ * @returns {String} 返回生成的hsl颜色
35
+ */
36
+ function rgbaToHsl(rgba) {
37
+ let arr = rgba.split(",");
38
+ let r = parseInt(arr[0].split("(")[1]) / 255;
39
+ let g = parseInt(arr[1]) / 255;
40
+ let b = parseInt(arr[2]) / 255;
41
+ let a = parseFloat(arr[3] && arr[3].split(")")[0]);
42
+ let max = Math.max(r, g, b),
43
+ min = Math.min(r, g, b);
44
+ let h,
45
+ s,
46
+ l = (max + min) / 2;
47
+ if (max === min) {
48
+ h = s = 0;
49
+ } else {
50
+ let d = max - min;
51
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
52
+ switch (max) {
53
+ case r:
54
+ h = (g - b) / d + (g < b ? 6 : 0);
55
+ break;
56
+ case g:
57
+ h = (b - r) / d + 2;
58
+ break;
59
+ case b:
60
+ h = (r - g) / d + 4;
61
+ break;
62
+ }
63
+ h /= 6;
64
+ }
65
+ if (a) {
66
+ return `hsla(${Math.round(h * 360)},${Math.round(s * 100)}%,${Math.round(l * 100)}%,${a})`;
67
+ }
68
+ return `hsl(${Math.round(h * 360)},${Math.round(s * 100)}%,${Math.round(l * 100)}%)`;
69
+ }
70
+
71
+ /**
72
+ * hex颜色转rgb
73
+ * @param {String} hex hex颜色字符串
74
+ * @returns {String} 返回生成的rgb颜色
75
+ */
76
+ function hexToRgb(hex) {
77
+ let color = {};
78
+ let rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
79
+ let hexStr = hex.replace(rgx, function (m, r, g, b) {
80
+ return r + r + g + g + b + b;
81
+ });
82
+ let rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
83
+ color.r = parseInt(rgb[1], 16);
84
+ color.g = parseInt(rgb[2], 16);
85
+ color.b = parseInt(rgb[3], 16);
86
+ return `rgb(${color.r},${color.g},${color.b})`;
87
+ }
88
+
89
+ /**
90
+ * hex颜色转rgba
91
+ * @param {String} hex hex颜色字符串
92
+ * @param {Number} opacity 透明度
93
+ * @returns {String} 返回生成的rgba颜色
94
+ */
95
+ function hexToRgba(hex, opacity = 1) {
96
+ let color = {};
97
+ let rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
98
+ let hexStr = hex.replace(rgx, function (m, r, g, b) {
99
+ return r + r + g + g + b + b;
100
+ });
101
+ let rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
102
+ color.r = parseInt(rgb[1], 16);
103
+ color.g = parseInt(rgb[2], 16);
104
+ color.b = parseInt(rgb[3], 16);
105
+ color.o = opacity;
106
+ return `rgba(${color.r},${color.g},${color.b},${color.o})`;
107
+ }
108
+
109
+ /**
110
+ * hex颜色转hsl
111
+ * @param {String} hex hex颜色字符串
112
+ * @returns {String} 返回生成的hsl颜色
113
+ */
114
+ function hexToHsl(hex) {
115
+ // 先解析为rgb
116
+ let rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
117
+ let hexStr = hex.replace(rgx, function (m, r, g, b) {
118
+ return r + r + g + g + b + b;
119
+ });
120
+ let rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
121
+
122
+ // 再组装为hsl格式
123
+ let r = parseInt(rgb[1], 16) / 255;
124
+ let g = parseInt(rgb[2], 16) / 255;
125
+ let b = parseInt(rgb[3], 16) / 255;
126
+ let max = Math.max(r, g, b),
127
+ min = Math.min(r, g, b);
128
+ let h,
129
+ s,
130
+ l = (max + min) / 2;
131
+ if (max === min) {
132
+ h = s = 0;
133
+ } else {
134
+ let d = max - min;
135
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
136
+ switch (max) {
137
+ case r:
138
+ h = (g - b) / d + (g < b ? 6 : 0);
139
+ break;
140
+ case g:
141
+ h = (b - r) / d + 2;
142
+ break;
143
+ case b:
144
+ h = (r - g) / d + 4;
145
+ break;
146
+ }
147
+ h /= 6;
148
+ }
149
+ return `hsl(${Math.round(h * 360)},${Math.round(s * 100)}%,${Math.round(l * 100)}%)`;
150
+ }
151
+
152
+ /**
153
+ * 随机生成hex颜色
154
+ * @returns {String} 返回生成的十六进制颜色
155
+ */
156
+ function getRandomHex() {
157
+ return (
158
+ "#" +
159
+ (function (h) {
160
+ return new Array(7 - h.length).join("0") + h;
161
+ })(((Math.random() * 0x1000000) << 0).toString(16))
162
+ );
163
+ }
164
+
165
+ /**
166
+ * 随机生成rgb颜色
167
+ * @returns {String} 返回生成的 rgb 颜色
168
+ */
169
+ function getRandomRgb() {
170
+ let r = Math.floor(Math.random() * 256);
171
+ let g = Math.floor(Math.random() * 256);
172
+ let b = Math.floor(Math.random() * 256);
173
+ return `rgb(${r},${g},${b})`;
174
+ }
175
+
176
+ /**
177
+ * 随机生成rgba颜色
178
+ * @returns {String} 返回生成的 rgba 颜色
179
+ */
180
+ function getRandomRgba() {
181
+ let r = Math.floor(Math.random() * 256);
182
+ let g = Math.floor(Math.random() * 256);
183
+ let b = Math.floor(Math.random() * 256);
184
+ let a = Number(Math.random()).toFixed(2);
185
+ return `rgba(${r},${g},${b},${a})`;
186
+ }
187
+
188
+ // 内部函数
189
+ /**
190
+ * 颜色值转换
191
+ * @param {Number} num 转换的值
192
+ * @returns
193
+ */
194
+ function _hex(num) {
195
+ if (num > 255) {
196
+ throw "'" + num + "'' is greater than 255(0xff);";
197
+ }
198
+ let str = Number(num).toString(16);
199
+ return ("0" + str).slice(-2);
200
+ }
201
+
202
+ exports.getRandomHex = getRandomHex;
203
+ exports.getRandomRgb = getRandomRgb;
204
+ exports.getRandomRgba = getRandomRgba;
205
+ exports.hexToHsl = hexToHsl;
206
+ exports.hexToRgb = hexToRgb;
207
+ exports.hexToRgba = hexToRgba;
208
+ exports.rgbToHex = rgbToHex;
209
+ exports.rgbaToHex = rgbaToHex;
210
+ exports.rgbaToHsl = rgbaToHsl;
@@ -0,0 +1,186 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * 日期常量
5
+ */
6
+ const DATE = {
7
+ // 上午和下午
8
+ AM_PM: {
9
+ zh: {
10
+ AM: "上午",
11
+ PM: "下午",
12
+ },
13
+ en: {
14
+ AM: "AM",
15
+ PM: "PM",
16
+ },
17
+ },
18
+ // 周
19
+ WEEK: {
20
+ zh: {
21
+ FULL: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
22
+ SHORT: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
23
+ MINI: ["日", "一", "二", "三", "四", "五", "六"],
24
+ },
25
+ en: {
26
+ FULL: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
27
+ SHORT: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
28
+ MINI: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
29
+ },
30
+ },
31
+
32
+ // 月
33
+ MONTH: {
34
+ zh: {
35
+ FULL: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
36
+ SHORT: ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"],
37
+ },
38
+ en: {
39
+ FULL: [
40
+ "January",
41
+ "February",
42
+ "March",
43
+ "April",
44
+ "May",
45
+ "June",
46
+ "July",
47
+ "August",
48
+ "September",
49
+ "October",
50
+ "November",
51
+ "December",
52
+ ],
53
+ SHORT: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
54
+ },
55
+ },
56
+ // 季度
57
+ QUARTER: {
58
+ zh: {
59
+ FULL: ["第一季度", "第二季度", "第三季度", "第四季度"],
60
+ SHORT: ["一季度", "二季度", "三季度", "四季度"],
61
+ MINI: ["一", "二", "三", "四"],
62
+ },
63
+ en: {
64
+ FULL: ["quarter 1st", "quarter 2nd", "quarter 3rd", "quarter 4th"],
65
+ SHORT: ["Q1th", "Q2nd", "Q3rd", "Q4th"],
66
+ MINI: ["Q1", "Q2", "Q3", "Q4"],
67
+ },
68
+ },
69
+
70
+ // 已过日期类型
71
+ OVER_TIME: {
72
+ zh: {
73
+ YEAR: "年",
74
+ MONTH: "月",
75
+ DATE: "日",
76
+ HOUR: "时",
77
+ MINUTE: "分",
78
+ SECOND: "秒",
79
+ MILLISECOND: "毫秒",
80
+ DAY: "天",
81
+ QUARTER: "季度",
82
+ },
83
+ en: {
84
+ YEAR: "year",
85
+ MONTH: "month",
86
+ DATE: "date",
87
+ HOUR: "hour",
88
+ MINUTE: "minute",
89
+ SECOND: "second",
90
+ MILLISECOND: "millisecond",
91
+ DAY: "day",
92
+ QUARTER: "quarter",
93
+ },
94
+ },
95
+
96
+ // 时间节点
97
+ PASS_TIME: {
98
+ zh: {
99
+ YEAR: "年前",
100
+ MONTH: "个月前",
101
+ DAY: "天前",
102
+ BEFORE_YESTERDAY: "前天",
103
+ YESTERDAY: "昨天",
104
+ TODAY: "今天",
105
+ HOUR: "小时前",
106
+ MINUTE: "分钟前",
107
+ JUST: "刚刚",
108
+ },
109
+ en: {
110
+ YEAR: " year ago",
111
+ MONTH: " month ago",
112
+ DAY: " day ago",
113
+ BEFORE_YESTERDAY: "before yesterday",
114
+ YESTERDAY: " yesterday",
115
+ TODAY: " today",
116
+ HOUR: " hour ago",
117
+ MINUTE: " minute ago",
118
+ JUST: " just",
119
+ },
120
+ },
121
+
122
+ // 节假日
123
+ HOLIDAY: {
124
+ zh: ["元旦", "春节", "清明节", "劳动节", "端午节", "中秋节", "国庆节"],
125
+ en: [
126
+ "New Year‘s Day",
127
+ "Spring Festival",
128
+ "Tomb Sweeping Day",
129
+ "Labor Day",
130
+ "Dragon Boat Festival",
131
+ "Mid-Autumn Day",
132
+ "National Day",
133
+ ],
134
+ },
135
+
136
+ // 星座
137
+
138
+ ZODIAC: {
139
+ zh: [
140
+ "摩羯座",
141
+ "水瓶座",
142
+ "双鱼座",
143
+ "白羊座",
144
+ "金牛座",
145
+ "双子座",
146
+ "巨蟹座",
147
+ "狮子座",
148
+ "处女座",
149
+ "天秤座",
150
+ "天蝎座",
151
+ "射手座",
152
+ ],
153
+ en: [
154
+ "Capricorn",
155
+ "Aquarius",
156
+ "Pisces",
157
+ "Aries",
158
+ "Taurus",
159
+ "Gemini",
160
+ "Cancer",
161
+ "Leo",
162
+ "Virgo",
163
+ "Libra",
164
+ "Scorpio",
165
+ "Sagittarius",
166
+ ],
167
+ },
168
+
169
+ // 生肖
170
+ CHINESE_ZODIAC: {
171
+ zh: ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"],
172
+ en: ["Rat", "Ox", "Tiger", "Rabbit", "Dragon", "Snake", "Horse", "Goat", "Monkey", "Rooster", "Dog", "Pig"],
173
+ },
174
+
175
+ // 天干地支
176
+ HEAVENLY_STEMS: {
177
+ zh: ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"],
178
+ en: ["Jia", "Yi", "Bing", "Ding", "Wu", "Ji", "Geng", "Xin", "Ren", "Gui"],
179
+ },
180
+ EARTHLY_BRANCHES: {
181
+ zh: ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"],
182
+ en: ["Zi", "Chou", "Yin", "Mao", "Chen", "Si", "Wu", "Wei", "Shen", "You", "Xu", "Hai"],
183
+ },
184
+ };
185
+
186
+ exports.DATE = DATE;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * 语言常量
5
+ */
6
+ const LANG = {
7
+ // 中文
8
+ ZH: "zh",
9
+ // 英文
10
+ EN: "en",
11
+ };
12
+
13
+ exports.LANG = LANG;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * 数学常量
5
+ */
6
+ const MATH = {
7
+ // 正常四舍五入,如:1.354保留两位是1.35;1.355保留两位是1.36;
8
+ ROUND: 0,
9
+ // 向下舍出,如:1.354保留两位是1.35;1.355保留两位是1.35;
10
+ ROUND_FLOOR: 1,
11
+ };
12
+
13
+ exports.MATH = MATH;
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * 正则常量
5
+ */
6
+ const REGEXP = {
7
+ // 中文汉字
8
+ CH: /^[\u4E00-\u9FA5]+$/,
9
+ // 英文字母
10
+ EN: /^[a-zA-Z]$/,
11
+ // 小写字母
12
+ LOWER_CASE: /^[a-z]+$/,
13
+ // 大写字母
14
+ UPPER_CASE: /^[A-Z]+$/,
15
+ // 中文姓名,2-16位
16
+ CH_NAME: /^[\u4e00-\u9fa5·]{2,16}$/,
17
+ // 英文姓名,0-20位
18
+ EN_NAME: /(^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$)/,
19
+ // 数字,包含正数和负数
20
+ NUMBER: /^([-+])?\d+(\.\d+)?$/,
21
+ // 整数,包含:0,正整数和负整数
22
+ INTEGER: /^(0|[1-9][0-9]*|-[1-9][0-9]*)$/,
23
+ // 小数,包含正小数和负小数
24
+ DECIMAL: /^\d+\.\d+$/,
25
+ // 正整数或者保留两位小数
26
+ INT_OR_FLOAT: /(^[1-9][0-9]*$)|(^[1-9][0-9]*\.[0-9]{1,2}$)|(^0\.[0-9]{1,2}$)|(^0$)/,
27
+ // 手机号码,支持+86
28
+ MOBILE: /^(?:(?:\+|00)86)?1[1-9]\d{9}$/,
29
+ // 固定电话号码,比如:0755-1111111
30
+ PHONE: /^(?:(?:\d{3}-)?\d{8}|^(?:\d{4}-)?\d{7,8})(?:-\d+)?$/,
31
+ // 邮箱
32
+ EMAIL: /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/,
33
+ // 一代15位和二代18位身份证
34
+ ID_CARD:
35
+ /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0[1-9]|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/,
36
+ // 仅校验一代15位身份证
37
+ ID_CARD15: /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)/,
38
+ // 仅校验二代18位身份证
39
+ ID_CARD18: /(^\d{6}(18|19|20)\d{2}(0[1-9]|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/,
40
+ // 银行卡号
41
+ BANK_CARD: /^[1-9]\d{9,29}$/,
42
+ // 邮政编码
43
+ POST_CODE: /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/,
44
+ // url地址,可以获取到主机地址、主机名、端口号、协议、查询参数、hash等信息
45
+ URL: /^(?:(ftp|https?|ftps):\/\/)?((?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+(?:[a-zA-Z]{2,6})?)?(?::(\d+))?(?:\/([^\?#]*))?(?:\?([^#]*))?(?:#(.*))?$/,
46
+ // ip地址
47
+ IP: /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
48
+ // IPv6地址
49
+ IP6: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,
50
+ // 是外链,http,https,mail,tel电话
51
+ EXTERNAL: /^(http?:|https?:|mailto:|tel:)/,
52
+ // 是函数字符串,包括async异步函数和箭头函数
53
+ FUNCTION_STR:
54
+ /^(function\([\w,\s]*\)\s*{[\s\S]*})|^\(\s*([\w,\s]*)\s*\)\s*=>\s*{[\s\S]*}|^(async\s*function\s*\([\w,\s]*\)\s*{[\s\S]*}\)\s*{[\s\S]*})|^(async\(\s*([\w,\s]*)\s*\)\s*=>\s*{[\s\S]*})$/,
55
+ };
56
+
57
+ exports.REGEXP = REGEXP;
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * 数组常量
5
+ */
6
+ const SORT = {
7
+ // 降序
8
+ DESC: 0,
9
+ // 升序
10
+ ASC: 1,
11
+ // 随机排序
12
+ RANDOM: 2,
13
+ };
14
+
15
+ exports.SORT = SORT;
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var index = require('../validate/index.cjs');
4
+
5
+ /**
6
+ * 浏览器是否支持 Cookie
7
+ * @returns {Boolean} 返回true和false
8
+ */
9
+ function isSupportCookie() {
10
+ return window.navigator.cookieEnabled;
11
+ }
12
+
13
+ /* cookie存储 */
14
+ /**
15
+ * 通过name获取cookie
16
+ * @param {String} name 参数name
17
+ * @returns {String} 返回获取的值
18
+ */
19
+ function getCookie(name) {
20
+ if (typeof document == "undefined") return "";
21
+ // cookie中每个分号后面是有个空格的,需要替换掉
22
+ let arr = document.cookie ? document.cookie.replace(/\s/g, "").split(";") : [];
23
+ for (let i in arr) {
24
+ let tempArr = arr[i].split("=");
25
+ if (tempArr[0] === name) {
26
+ return decodeURIComponent(tempArr[1]);
27
+ }
28
+ }
29
+ return "";
30
+ }
31
+
32
+ /**
33
+ * 通过name设置cookie
34
+ * 注:timestamp参数不填,则默认为session级别,浏览器关闭即cookie过期
35
+ * @param {String} name 参数name
36
+ * @param {String} value 设置的value
37
+ * @param {Number} timestamp 过期的时间戳值,默认为一天,设置一天过期则为:24*60*60*1000
38
+ */
39
+ function setCookie(name, value, timestamp = 24 * 60 * 60 * 1000) {
40
+ if (typeof document == "undefined") return;
41
+ document.cookie = name + "=" + value + ";expires=" + new Date(Date.now() + timestamp);
42
+ }
43
+
44
+ /**
45
+ * 通过name删除cookie
46
+ * @param {String} name 参数name
47
+ */
48
+ function removeCookie(name) {
49
+ if (index.isEmpty(name)) return;
50
+ setCookie(name, "", -1);
51
+ }
52
+
53
+ /**
54
+ * 清空当前站点域名的cookie
55
+ * @param {String} domain 域名地址,默认是当前站点域名
56
+ */
57
+ function clearCookie(domain = document.domain) {
58
+ let names = document.cookie.match(/[^ =;]+(?==)/g);
59
+ if (names) {
60
+ for (let i = names.length; i--; ) {
61
+ document.cookie =
62
+ names[i] + "=0;path=/;" + domain ? "domain=" + domain + ";" : "" + "expires=" + new Date(0).toUTCString();
63
+ }
64
+ }
65
+ }
66
+
67
+ exports.clearCookie = clearCookie;
68
+ exports.getCookie = getCookie;
69
+ exports.isSupportCookie = isSupportCookie;
70
+ exports.removeCookie = removeCookie;
71
+ exports.setCookie = setCookie;