util-helpers 4.12.10 → 4.13.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.
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
@@ -139,7 +139,7 @@
139
139
  return convertToString(value);
140
140
  }
141
141
 
142
- var reg$d = /^1[3456789]\d{9}$/;
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$d.test(valueStr);
160
+ return reg$c.test(valueStr);
161
161
  }
162
162
 
163
- var reg$c = /^(0\d{2,3}\-)?([2-9]\d{6,7})(\-\d{1,6})?$/;
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$c.test(valueStr);
187
+ return reg$b.test(valueStr);
188
188
  }
189
189
 
190
- var reg$b = /^\d{6}$/;
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$b.test(valueStr);
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$a = /^[\da-z]+([\-\.\_]?[\da-z]+)*@[\da-z]+([\-\.]?[\da-z]+)*(\.[a-z]{2,})+$/i;
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$a.test(valueStr);
306
+ return reg$9.test(valueStr);
307
307
  }
308
308
 
309
- var reg$9 = /^[1-9]\d{4,10}$/;
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$9.test(valueStr);
327
+ return reg$8.test(valueStr);
328
328
  }
329
329
 
330
- var reg$8 = /^[a-z]([-_a-z0-9]{5,19})+$/i;
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$8.test(valueStr);
348
+ return reg$7.test(valueStr);
349
349
  }
350
350
 
351
- var reg$7 = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([A-Z0-9]{4}[A-Z0-9挂学警港澳]{1})|([A-Z0-9]{5}[DF])|([DF][A-Z0-9]{5}))$/;
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$7.test(valueStr);
377
+ return reg$6.test(valueStr);
378
378
  }
379
379
 
380
- var reg$6 = /^[1-9]\d{9,20}$/; // 8~30位数字
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$6.test(valueStr);
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,9 +526,6 @@
526
526
  return lastCode === checkCode;
527
527
  }
528
528
 
529
- const version = "4.12.10";
530
-
531
- // @ts-ignore
532
529
  var config = {
533
530
  // 禁用warning提示
534
531
  disableWarning: true
@@ -543,7 +540,10 @@
543
540
 
544
541
  function setDisableWarning(bool) {
545
542
  config.disableWarning = !!bool;
546
- }
543
+ } // eslint-disable-next-line no-undef
544
+
545
+
546
+ var version = "4.13.1";
547
547
 
548
548
  /**
549
549
  * 打印警告信息
@@ -891,7 +891,7 @@
891
891
  }).validated;
892
892
  }
893
893
 
894
- var reg$5 = /^((e[\da-z])|(de)|(se)|(pe)|([khm][\da-z]))[\da-z]{7}$/i;
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$5.test(valueStr);
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$4 = /^((\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])$/;
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$4.test(valueStr);
1010
+ return reg$3.test(valueStr);
1009
1011
  }
1010
1012
 
1011
- var reg$3 = /^((([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;
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$3.test(valueStr);
1047
+ return reg$2.test(valueStr);
1046
1048
  }
1047
1049
 
1048
- var reg$2 = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\*\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;
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('8.8.8.8'); // false
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('http://www.example.com/test/123'); // true
1066
- * isUrl('http://www.example.com/test/123?foo=bar'); // true
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 reg$2.test(valueStr);
1097
+ return regWithProtocal.test(valueStr) || regNonProtocal.test(valueStr);
1073
1098
  }
1074
1099
 
1075
1100
  var baseReg = /^\d{15}$/;