util-helpers 4.12.10 → 4.13.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 +5 -0
- package/dist/util-helpers.js +53 -28
- package/dist/util-helpers.js.map +1 -1
- package/dist/util-helpers.min.js +1 -1
- package/dist/util-helpers.min.js.map +1 -1
- package/esm/isChinese.js +2 -0
- package/esm/isUrl.js +28 -6
- package/esm/utils/config.js +1 -1
- package/lib/isChinese.js +2 -0
- package/lib/isUrl.js +28 -6
- package/lib/utils/config.js +1 -1
- package/package.json +1 -1
- package/types/isChinese.d.ts +2 -0
- package/types/isUrl.d.ts +12 -3
package/README.md
CHANGED
|
@@ -125,3 +125,8 @@ formatMoney('1000'); // => 1,000.00
|
|
|
125
125
|
[npm-url]: https://npmjs.com/package/util-helpers
|
|
126
126
|
[what is commitlint]: https://github.com/conventional-changelog/commitlint#what-is-commitlint
|
|
127
127
|
[ua-parser-js]: https://www.npmjs.com/package/ua-parser-js
|
|
128
|
+
[numeral]: http://numeraljs.com/
|
|
129
|
+
[rxjs]: https://www.npmjs.com/package/rxjs
|
|
130
|
+
[immutable]: https://www.npmjs.com/package/immutable
|
|
131
|
+
[classnames]: https://www.npmjs.com/package/classnames
|
|
132
|
+
[ramda]: https://www.npmjs.com/package/ramda
|
package/dist/util-helpers.js
CHANGED
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
return convertToString(value);
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
var reg$
|
|
142
|
+
var reg$c = /^1[3456789]\d{9}$/;
|
|
143
143
|
/**
|
|
144
144
|
* 检测值是否为手机号码
|
|
145
145
|
*
|
|
@@ -157,10 +157,10 @@
|
|
|
157
157
|
|
|
158
158
|
function isMobile(value) {
|
|
159
159
|
var valueStr = normalizeString(value);
|
|
160
|
-
return reg$
|
|
160
|
+
return reg$c.test(valueStr);
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
-
var reg$
|
|
163
|
+
var reg$b = /^(0\d{2,3}\-)?([2-9]\d{6,7})(\-\d{1,6})?$/;
|
|
164
164
|
/**
|
|
165
165
|
* 检测值是否为固定电话
|
|
166
166
|
*
|
|
@@ -184,10 +184,10 @@
|
|
|
184
184
|
|
|
185
185
|
function isTelephone(value) {
|
|
186
186
|
var valueStr = normalizeString(value);
|
|
187
|
-
return reg$
|
|
187
|
+
return reg$b.test(valueStr);
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
var reg$
|
|
190
|
+
var reg$a = /^\d{6}$/;
|
|
191
191
|
/**
|
|
192
192
|
* 检测值是否为邮政编码,6位数字
|
|
193
193
|
*
|
|
@@ -205,7 +205,7 @@
|
|
|
205
205
|
|
|
206
206
|
function isPostcode(value) {
|
|
207
207
|
var valueStr = normalizeString(value);
|
|
208
|
-
return reg$
|
|
208
|
+
return reg$a.test(valueStr);
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
var regIdCard$1 = /^[1-9]\d{5}(19|20)?\d{2}((0[1-9])|(1[012]))(([0-2][1-9])|10|20|30|31)\d{3}(\d|X)?$/i;
|
|
@@ -285,7 +285,7 @@
|
|
|
285
285
|
return false;
|
|
286
286
|
}
|
|
287
287
|
|
|
288
|
-
var reg$
|
|
288
|
+
var reg$9 = /^[\da-z]+([\-\.\_]?[\da-z]+)*@[\da-z]+([\-\.]?[\da-z]+)*(\.[a-z]{2,})+$/i;
|
|
289
289
|
/**
|
|
290
290
|
* 检测值是否为Email
|
|
291
291
|
*
|
|
@@ -303,10 +303,10 @@
|
|
|
303
303
|
|
|
304
304
|
function isEmail(value) {
|
|
305
305
|
var valueStr = normalizeString(value);
|
|
306
|
-
return reg$
|
|
306
|
+
return reg$9.test(valueStr);
|
|
307
307
|
}
|
|
308
308
|
|
|
309
|
-
var reg$
|
|
309
|
+
var reg$8 = /^[1-9]\d{4,10}$/;
|
|
310
310
|
/**
|
|
311
311
|
* 检测值是否为QQ号,非0开头,5至11位数字
|
|
312
312
|
*
|
|
@@ -324,10 +324,10 @@
|
|
|
324
324
|
|
|
325
325
|
function isQQ(value) {
|
|
326
326
|
var valueStr = normalizeString(value);
|
|
327
|
-
return reg$
|
|
327
|
+
return reg$8.test(valueStr);
|
|
328
328
|
}
|
|
329
329
|
|
|
330
|
-
var reg$
|
|
330
|
+
var reg$7 = /^[a-z]([-_a-z0-9]{5,19})+$/i;
|
|
331
331
|
/**
|
|
332
332
|
* 检测值是否为微信号
|
|
333
333
|
*
|
|
@@ -345,10 +345,10 @@
|
|
|
345
345
|
|
|
346
346
|
function isWX(value) {
|
|
347
347
|
var valueStr = normalizeString(value);
|
|
348
|
-
return reg$
|
|
348
|
+
return reg$7.test(valueStr);
|
|
349
349
|
}
|
|
350
350
|
|
|
351
|
-
var reg$
|
|
351
|
+
var reg$6 = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([A-Z0-9]{4}[A-Z0-9挂学警港澳]{1})|([A-Z0-9]{5}[DF])|([DF][A-Z0-9]{5}))$/;
|
|
352
352
|
/**
|
|
353
353
|
* 检测值是否为车牌号,支持新能源和非新能源车牌
|
|
354
354
|
*
|
|
@@ -374,10 +374,10 @@
|
|
|
374
374
|
|
|
375
375
|
function isVehicle(value) {
|
|
376
376
|
var valueStr = normalizeString(value);
|
|
377
|
-
return reg$
|
|
377
|
+
return reg$6.test(valueStr);
|
|
378
378
|
}
|
|
379
379
|
|
|
380
|
-
var reg$
|
|
380
|
+
var reg$5 = /^[1-9]\d{9,20}$/; // 8~30位数字
|
|
381
381
|
|
|
382
382
|
var regLoose = /^\d{8,30}$/;
|
|
383
383
|
/**
|
|
@@ -430,7 +430,7 @@
|
|
|
430
430
|
_options$luhn = options.luhn,
|
|
431
431
|
luhn = _options$luhn === void 0 ? false : _options$luhn;
|
|
432
432
|
var valueStr = normalizeString(value);
|
|
433
|
-
var validateResult = loose ? regLoose.test(valueStr) : reg$
|
|
433
|
+
var validateResult = loose ? regLoose.test(valueStr) : reg$5.test(valueStr);
|
|
434
434
|
|
|
435
435
|
if (validateResult && luhn) {
|
|
436
436
|
var precode = valueStr.substring(0, valueStr.length - 1);
|
|
@@ -526,7 +526,7 @@
|
|
|
526
526
|
return lastCode === checkCode;
|
|
527
527
|
}
|
|
528
528
|
|
|
529
|
-
const version = "4.
|
|
529
|
+
const version = "4.13.0";
|
|
530
530
|
|
|
531
531
|
// @ts-ignore
|
|
532
532
|
var config = {
|
|
@@ -891,7 +891,7 @@
|
|
|
891
891
|
}).validated;
|
|
892
892
|
}
|
|
893
893
|
|
|
894
|
-
var reg$
|
|
894
|
+
var reg$4 = /^((e[\da-z])|(de)|(se)|(pe)|([khm][\da-z]))[\da-z]{7}$/i;
|
|
895
895
|
/**
|
|
896
896
|
* 检测值是否为护照号
|
|
897
897
|
* 支持普通护照(E*)、外交护照(DE)、公务护照(SE)、公务普通护照(PE)、香港特区护照(K/KJ/H*)、澳门特区护照(MA/MB/M*),注意不区分大小写
|
|
@@ -911,7 +911,7 @@
|
|
|
911
911
|
|
|
912
912
|
function isPassport(value) {
|
|
913
913
|
var valueStr = normalizeString(value);
|
|
914
|
-
return reg$
|
|
914
|
+
return reg$4.test(valueStr);
|
|
915
915
|
}
|
|
916
916
|
|
|
917
917
|
var chineseDictionary = {
|
|
@@ -946,6 +946,8 @@
|
|
|
946
946
|
* @alias module:Validator.isChinese
|
|
947
947
|
* @since 1.1.0
|
|
948
948
|
* @see 参考 {@link http://www.unicode.org/reports/tr38/#BlockListing|4.4 Listing of Characters Covered by the Unihan Database}
|
|
949
|
+
* @see 参考 {@link https://zh.wikipedia.org/wiki/Unicode字符平面映射|Unicode字符平面映射}
|
|
950
|
+
* @see 参考 {@link https://zh.wikipedia.org/wiki/Unicode區段|Unicode区段}
|
|
949
951
|
* @param {*} value 要检测的值
|
|
950
952
|
* @param {Object} [options] 配置项
|
|
951
953
|
* @param {boolean} [options.loose=false] 宽松模式。如果为true,只要包含中文即为true
|
|
@@ -985,7 +987,7 @@
|
|
|
985
987
|
return reg.test(valueStr);
|
|
986
988
|
}
|
|
987
989
|
|
|
988
|
-
var reg$
|
|
990
|
+
var reg$3 = /^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
|
|
989
991
|
/**
|
|
990
992
|
* 检测值是否为ipv4
|
|
991
993
|
*
|
|
@@ -1005,10 +1007,10 @@
|
|
|
1005
1007
|
|
|
1006
1008
|
function isIPv4(value) {
|
|
1007
1009
|
var valueStr = normalizeString(value);
|
|
1008
|
-
return reg$
|
|
1010
|
+
return reg$3.test(valueStr);
|
|
1009
1011
|
}
|
|
1010
1012
|
|
|
1011
|
-
var reg$
|
|
1013
|
+
var reg$2 = /^((([0-9A-F]{1,4}:){7}([0-9A-F]{1,4}|:))|(([0-9A-F]{1,4}:){6}(:[0-9A-F]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|\d{1,2})(\.(25[0-5]|2[0-4]\d|1\d\d|\d{1,2})){3})|:))|(([0-9A-F]{1,4}:){5}(((:[0-9A-F]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|\d{1,2})(\.(25[0-5]|2[0-4]\d|1\d\d|\d{1,2})){3})|:))|(([0-9A-F]{1,4}:){4}(((:[0-9A-F]{1,4}){1,3})|((:[0-9A-F]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|\d{1,2})(\.(25[0-5]|2[0-4]\d|1\d\d|\d{1,2})){3}))|:))|(([0-9A-F]{1,4}:){3}(((:[0-9A-F]{1,4}){1,4})|((:[0-9A-F]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|\d{1,2})(\.(25[0-5]|2[0-4]\d|1\d\d|\d{1,2})){3}))|:))|(([0-9A-F]{1,4}:){2}(((:[0-9A-F]{1,4}){1,5})|((:[0-9A-F]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|\d{1,2})(\.(25[0-5]|2[0-4]\d|1\d\d|\d{1,2})){3}))|:))|(([0-9A-F]{1,4}:){1}(((:[0-9A-F]{1,4}){1,6})|((:[0-9A-F]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|\d{1,2})(\.(25[0-5]|2[0-4]\d|1\d\d|\d{1,2})){3}))|:))|(:(((:[0-9A-F]{1,4}){1,7})|((:[0-9A-F]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|\d{1,2})(\.(25[0-5]|2[0-4]\d|1\d\d|\d{1,2})){3}))|:)))(%.+)?$/i;
|
|
1012
1014
|
/**
|
|
1013
1015
|
* 检测值是否为ipv6
|
|
1014
1016
|
*
|
|
@@ -1042,10 +1044,24 @@
|
|
|
1042
1044
|
|
|
1043
1045
|
function isIPv6(value) {
|
|
1044
1046
|
var valueStr = normalizeString(value);
|
|
1045
|
-
return reg$
|
|
1047
|
+
return reg$2.test(valueStr);
|
|
1046
1048
|
}
|
|
1047
1049
|
|
|
1048
|
-
|
|
1050
|
+
// [协议类型]://[服务器地址]:[端口号]/[资源层级UNIX文件路径][文件名]?[查询]#[片段ID]
|
|
1051
|
+
// 完整格式如下:
|
|
1052
|
+
// [协议类型]://[访问资源需要的凭证信息]@[服务器地址]:[端口号]/[资源层级UNIX文件路径][文件名]?[查询]#[片段ID]
|
|
1053
|
+
//
|
|
1054
|
+
// 其中[访问凭证信息]、[端口号]、[查询]、[片段ID]都属于选填项。
|
|
1055
|
+
|
|
1056
|
+
var protocalReg = '[\\w-.]+:\\/\\/';
|
|
1057
|
+
var credentialsReg = '[-;:&=\\+\\$,\\w]+@';
|
|
1058
|
+
var serverReg = 'localhost|(([^\\s:\\/]+?\\.)+?[^\\s:\\/]+)';
|
|
1059
|
+
var portReg = ':\\d+';
|
|
1060
|
+
var pathReg = '\\/.*';
|
|
1061
|
+
var searchReg = '\\?.*';
|
|
1062
|
+
var hashReg = '#.*';
|
|
1063
|
+
var regWithProtocal = new RegExp("^".concat(protocalReg, "(?:").concat(credentialsReg, ")?(?:").concat(serverReg, ")(?:").concat(portReg, ")?(?:").concat(pathReg, ")*(?:").concat(searchReg, ")?(?:").concat(hashReg, ")?$"));
|
|
1064
|
+
var regNonProtocal = new RegExp("^(?:".concat(serverReg, ")(?:").concat(portReg, ")?(?:").concat(pathReg, ")*(?:").concat(searchReg, ")?(?:").concat(hashReg, ")?$"));
|
|
1049
1065
|
/**
|
|
1050
1066
|
* 检测值是否为url
|
|
1051
1067
|
*
|
|
@@ -1058,18 +1074,27 @@
|
|
|
1058
1074
|
* @example
|
|
1059
1075
|
*
|
|
1060
1076
|
* isUrl(''); // false
|
|
1061
|
-
* isUrl('
|
|
1077
|
+
* isUrl('/foo/bar'); // false
|
|
1078
|
+
*
|
|
1079
|
+
* isUrl('8.8.8.8'); // true
|
|
1062
1080
|
* isUrl('example.com'); // true
|
|
1063
1081
|
* isUrl('http://example.com'); // true
|
|
1064
1082
|
* isUrl('https://example.com:8080'); // true
|
|
1065
|
-
* isUrl('
|
|
1066
|
-
* isUrl('
|
|
1083
|
+
* isUrl('https://www.example.com/test/123'); // true
|
|
1084
|
+
* isUrl('https://www.example.com/test/123?foo=bar'); // true
|
|
1085
|
+
* isUrl('https://www.example.com/test/123?foo=中文#id'); // true
|
|
1086
|
+
* isUrl('https://www.example.com/test/123?foo=中文#测试'); // true
|
|
1087
|
+
* isUrl('ftp://127.0.0.1:8080/测试.tar'); // true
|
|
1088
|
+
* isUrl('a.b'); // true
|
|
1089
|
+
* isUrl('a.b:8080'); // true
|
|
1090
|
+
* isUrl('p://a.b'); // true
|
|
1091
|
+
* isUrl('p://a.b:8888'); // true
|
|
1067
1092
|
*
|
|
1068
1093
|
*/
|
|
1069
1094
|
|
|
1070
1095
|
function isUrl(value) {
|
|
1071
1096
|
var valueStr = normalizeString(value);
|
|
1072
|
-
return
|
|
1097
|
+
return regWithProtocal.test(valueStr) || regNonProtocal.test(valueStr);
|
|
1073
1098
|
}
|
|
1074
1099
|
|
|
1075
1100
|
var baseReg = /^\d{15}$/;
|