util-helpers 4.12.9 → 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.
Files changed (47) hide show
  1. package/README.md +8 -1
  2. package/dist/util-helpers.js +133 -115
  3. package/dist/util-helpers.js.map +1 -1
  4. package/dist/util-helpers.min.js +1 -1
  5. package/dist/util-helpers.min.js.map +1 -1
  6. package/esm/calculateCursorPosition.js +6 -7
  7. package/esm/formatBankCard.js +5 -5
  8. package/esm/formatMobile.js +4 -3
  9. package/esm/formatMoney.js +9 -10
  10. package/esm/isBankCard.js +5 -6
  11. package/esm/isChinese.js +7 -6
  12. package/esm/isIdCard.js +5 -6
  13. package/esm/isPassword.js +7 -8
  14. package/esm/isTWCard.js +3 -4
  15. package/esm/isUrl.js +28 -6
  16. package/esm/numberToChinese.js +14 -15
  17. package/esm/replaceChar.js +10 -9
  18. package/esm/utils/config.js +1 -1
  19. package/esm/validatePassword.js +7 -8
  20. package/lib/calculateCursorPosition.js +6 -7
  21. package/lib/formatBankCard.js +5 -5
  22. package/lib/formatMobile.js +4 -3
  23. package/lib/formatMoney.js +9 -10
  24. package/lib/isBankCard.js +5 -6
  25. package/lib/isChinese.js +7 -6
  26. package/lib/isIdCard.js +5 -6
  27. package/lib/isPassword.js +7 -8
  28. package/lib/isTWCard.js +3 -4
  29. package/lib/isUrl.js +28 -6
  30. package/lib/numberToChinese.js +14 -15
  31. package/lib/replaceChar.js +10 -9
  32. package/lib/utils/config.js +1 -1
  33. package/lib/validatePassword.js +7 -8
  34. package/package.json +1 -1
  35. package/types/calculateCursorPosition.d.ts +1 -1
  36. package/types/formatBankCard.d.ts +1 -1
  37. package/types/formatMobile.d.ts +1 -1
  38. package/types/formatMoney.d.ts +1 -1
  39. package/types/isBankCard.d.ts +1 -1
  40. package/types/isChinese.d.ts +3 -1
  41. package/types/isIdCard.d.ts +1 -1
  42. package/types/isPassword.d.ts +1 -1
  43. package/types/isTWCard.d.ts +1 -1
  44. package/types/isUrl.d.ts +12 -3
  45. package/types/numberToChinese.d.ts +1 -1
  46. package/types/replaceChar.d.ts +1 -1
  47. package/types/validatePassword.d.ts +1 -1
@@ -28,12 +28,12 @@ import normalizeString from './normalizeString';
28
28
 
29
29
  function formatBankCard() {
30
30
  var bankCardNo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
31
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
31
32
 
32
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
33
- _ref$char = _ref["char"],
34
- _char = _ref$char === void 0 ? ' ' : _ref$char,
35
- _ref$length = _ref.length,
36
- length = _ref$length === void 0 ? 4 : _ref$length;
33
+ var _options$char = options["char"],
34
+ _char = _options$char === void 0 ? ' ' : _options$char,
35
+ _options$length = options.length,
36
+ length = _options$length === void 0 ? 4 : _options$length;
37
37
 
38
38
  var reg = new RegExp("(.{".concat(length, "})"), 'g');
39
39
  var regChar = new RegExp("".concat(_char), 'g');
@@ -26,9 +26,10 @@ import normalizeString from './normalizeString';
26
26
  */
27
27
 
28
28
  function formatMobile(mobileNo) {
29
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
30
- _ref$char = _ref["char"],
31
- _char = _ref$char === void 0 ? ' ' : _ref$char;
29
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
30
+
31
+ var _options$char = options["char"],
32
+ _char = _options$char === void 0 ? ' ' : _options$char;
32
33
 
33
34
  var regChar = new RegExp(_char, 'g');
34
35
  var realValue = normalizeString(mobileNo).replace(regChar, '').substring(0, 11);
@@ -118,17 +118,16 @@ function formatDec(decStr, precision, decimal) {
118
118
 
119
119
 
120
120
  var formatMoney = function formatMoney(num) {
121
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
122
- _ref$precision = _ref.precision,
123
- precision = _ref$precision === void 0 ? 2 : _ref$precision,
124
- symbol = _ref.symbol,
125
- _ref$thousand = _ref.thousand,
126
- thousand = _ref$thousand === void 0 ? ',' : _ref$thousand,
127
- _ref$decimal = _ref.decimal,
128
- decimal = _ref$decimal === void 0 ? '.' : _ref$decimal;
129
-
130
- // 数字参数不正确,返回空字符串
121
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
122
+ var _options$precision = options.precision,
123
+ precision = _options$precision === void 0 ? 2 : _options$precision,
124
+ symbol = options.symbol,
125
+ _options$thousand = options.thousand,
126
+ thousand = _options$thousand === void 0 ? ',' : _options$thousand,
127
+ _options$decimal = options.decimal,
128
+ decimal = _options$decimal === void 0 ? '.' : _options$decimal; // 数字参数不正确,返回空字符串
131
129
  // @ts-ignore
130
+
132
131
  if (!checkNumber(num)) {
133
132
  return '';
134
133
  } // 参数规整化
package/esm/isBankCard.js CHANGED
@@ -47,12 +47,11 @@ function sumCheckCode(numStr) {
47
47
 
48
48
 
49
49
  function isBankCard(value) {
50
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
51
- _ref$loose = _ref.loose,
52
- loose = _ref$loose === void 0 ? false : _ref$loose,
53
- _ref$luhn = _ref.luhn,
54
- luhn = _ref$luhn === void 0 ? false : _ref$luhn;
55
-
50
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
51
+ var _options$loose = options.loose,
52
+ loose = _options$loose === void 0 ? false : _options$loose,
53
+ _options$luhn = options.luhn,
54
+ luhn = _options$luhn === void 0 ? false : _options$luhn;
56
55
  var valueStr = normalizeString(value);
57
56
  var validateResult = loose ? regLoose.test(valueStr) : reg.test(valueStr);
58
57
 
package/esm/isChinese.js CHANGED
@@ -31,6 +31,8 @@ var supportRegExpUnicode = RegExp.prototype.hasOwnProperty('unicode');
31
31
  * @alias module:Validator.isChinese
32
32
  * @since 1.1.0
33
33
  * @see 参考 {@link http://www.unicode.org/reports/tr38/#BlockListing|4.4 Listing of Characters Covered by the Unihan Database}
34
+ * @see 参考 {@link https://zh.wikipedia.org/wiki/Unicode字符平面映射|Unicode字符平面映射}
35
+ * @see 参考 {@link https://zh.wikipedia.org/wiki/Unicode區段|Unicode区段}
34
36
  * @param {*} value 要检测的值
35
37
  * @param {Object} [options] 配置项
36
38
  * @param {boolean} [options.loose=false] 宽松模式。如果为true,只要包含中文即为true
@@ -55,12 +57,11 @@ var supportRegExpUnicode = RegExp.prototype.hasOwnProperty('unicode');
55
57
  */
56
58
 
57
59
  function isChinese(value) {
58
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
59
- _ref$loose = _ref.loose,
60
- loose = _ref$loose === void 0 ? false : _ref$loose,
61
- _ref$useExtend = _ref.useExtend,
62
- useExtend = _ref$useExtend === void 0 ? false : _ref$useExtend;
63
-
60
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
61
+ var _options$loose = options.loose,
62
+ loose = _options$loose === void 0 ? false : _options$loose,
63
+ _options$useExtend = options.useExtend,
64
+ useExtend = _options$useExtend === void 0 ? false : _options$useExtend;
64
65
  var valueStr = normalizeString(value);
65
66
  var basicRegExp = loose ? looseChineseRegExp : chineseRegExp;
66
67
  var extendRegExp = loose ? looseChineseExtendRegExp : chineseExtendRegExp;
package/esm/isIdCard.js CHANGED
@@ -55,12 +55,11 @@ function check(id) {
55
55
 
56
56
 
57
57
  function isIdCard(value) {
58
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
59
- _ref$loose = _ref.loose,
60
- loose = _ref$loose === void 0 ? false : _ref$loose,
61
- _ref$checkCode = _ref.checkCode,
62
- checkCode = _ref$checkCode === void 0 ? true : _ref$checkCode;
63
-
58
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
59
+ var _options$loose = options.loose,
60
+ loose = _options$loose === void 0 ? false : _options$loose,
61
+ _options$checkCode = options.checkCode,
62
+ checkCode = _options$checkCode === void 0 ? true : _options$checkCode;
64
63
  var valueStr = normalizeString(value);
65
64
 
66
65
  if (valueStr.length === 15 && loose) {
package/esm/isPassword.js CHANGED
@@ -34,14 +34,13 @@ import validatePassword from './validatePassword';
34
34
  */
35
35
 
36
36
  function isPassword(value) {
37
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
38
- _ref$level = _ref.level,
39
- level = _ref$level === void 0 ? 2 : _ref$level,
40
- _ref$ignoreCase = _ref.ignoreCase,
41
- ignoreCase = _ref$ignoreCase === void 0 ? false : _ref$ignoreCase,
42
- _ref$special = _ref.special,
43
- special = _ref$special === void 0 ? '\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E' : _ref$special;
44
-
37
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
38
+ var _options$level = options.level,
39
+ level = _options$level === void 0 ? 2 : _options$level,
40
+ _options$ignoreCase = options.ignoreCase,
41
+ ignoreCase = _options$ignoreCase === void 0 ? false : _options$ignoreCase,
42
+ _options$special = options.special,
43
+ special = _options$special === void 0 ? '\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E' : _options$special;
45
44
  return validatePassword(value, {
46
45
  level: level,
47
46
  ignoreCase: ignoreCase,
package/esm/isTWCard.js CHANGED
@@ -27,10 +27,9 @@ var singleRegTWCard = /^[\da-z]{10,12}$/i;
27
27
  */
28
28
 
29
29
  function isTWCard(value) {
30
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
31
- _ref$loose = _ref.loose,
32
- loose = _ref$loose === void 0 ? false : _ref$loose;
33
-
30
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
31
+ var _options$loose = options.loose,
32
+ loose = _options$loose === void 0 ? false : _options$loose;
34
33
  var valueStr = normalizeString(value);
35
34
 
36
35
  if (regTWCard.test(valueStr)) {
package/esm/isUrl.js CHANGED
@@ -1,6 +1,19 @@
1
- import normalizeString from './normalizeString'; // url正则
1
+ import normalizeString from './normalizeString'; // 标准格式如下:
2
+ // [协议类型]://[服务器地址]:[端口号]/[资源层级UNIX文件路径][文件名]?[查询]#[片段ID]
3
+ // 完整格式如下:
4
+ // [协议类型]://[访问资源需要的凭证信息]@[服务器地址]:[端口号]/[资源层级UNIX文件路径][文件名]?[查询]#[片段ID]
5
+ //
6
+ // 其中[访问凭证信息]、[端口号]、[查询]、[片段ID]都属于选填项。
2
7
 
3
- var reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\*\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;
8
+ var protocalReg = '[\\w-.]+:\\/\\/';
9
+ var credentialsReg = '[-;:&=\\+\\$,\\w]+@';
10
+ var serverReg = 'localhost|(([^\\s:\\/]+?\\.)+?[^\\s:\\/]+)';
11
+ var portReg = ':\\d+';
12
+ var pathReg = '\\/.*';
13
+ var searchReg = '\\?.*';
14
+ var hashReg = '#.*';
15
+ var regWithProtocal = new RegExp("^".concat(protocalReg, "(?:").concat(credentialsReg, ")?(?:").concat(serverReg, ")(?:").concat(portReg, ")?(?:").concat(pathReg, ")*(?:").concat(searchReg, ")?(?:").concat(hashReg, ")?$"));
16
+ var regNonProtocal = new RegExp("^(?:".concat(serverReg, ")(?:").concat(portReg, ")?(?:").concat(pathReg, ")*(?:").concat(searchReg, ")?(?:").concat(hashReg, ")?$"));
4
17
  /**
5
18
  * 检测值是否为url
6
19
  *
@@ -13,18 +26,27 @@ var reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:
13
26
  * @example
14
27
  *
15
28
  * isUrl(''); // false
16
- * isUrl('8.8.8.8'); // false
29
+ * isUrl('/foo/bar'); // false
30
+ *
31
+ * isUrl('8.8.8.8'); // true
17
32
  * isUrl('example.com'); // true
18
33
  * isUrl('http://example.com'); // true
19
34
  * isUrl('https://example.com:8080'); // true
20
- * isUrl('http://www.example.com/test/123'); // true
21
- * isUrl('http://www.example.com/test/123?foo=bar'); // true
35
+ * isUrl('https://www.example.com/test/123'); // true
36
+ * isUrl('https://www.example.com/test/123?foo=bar'); // true
37
+ * isUrl('https://www.example.com/test/123?foo=中文#id'); // true
38
+ * isUrl('https://www.example.com/test/123?foo=中文#测试'); // true
39
+ * isUrl('ftp://127.0.0.1:8080/测试.tar'); // true
40
+ * isUrl('a.b'); // true
41
+ * isUrl('a.b:8080'); // true
42
+ * isUrl('p://a.b'); // true
43
+ * isUrl('p://a.b:8888'); // true
22
44
  *
23
45
  */
24
46
 
25
47
  function isUrl(value) {
26
48
  var valueStr = normalizeString(value);
27
- return reg.test(valueStr);
49
+ return regWithProtocal.test(valueStr) || regNonProtocal.test(valueStr);
28
50
  }
29
51
 
30
52
  export default isUrl;
@@ -180,21 +180,20 @@ function mapNumberChar(num) {
180
180
 
181
181
 
182
182
  function numberToChinese(num) {
183
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
184
- _ref$big = _ref.big5,
185
- big5 = _ref$big === void 0 ? false : _ref$big,
186
- _ref$unit = _ref.unit,
187
- unit = _ref$unit === void 0 ? true : _ref$unit,
188
- _ref$decimal = _ref.decimal,
189
- decimal = _ref$decimal === void 0 ? '' : _ref$decimal,
190
- _ref$zero = _ref.zero,
191
- zero = _ref$zero === void 0 ? '' : _ref$zero,
192
- _ref$negative = _ref.negative,
193
- negative = _ref$negative === void 0 ? '负' : _ref$negative,
194
- _ref$unitConfig = _ref.unitConfig,
195
- unitConfig = _ref$unitConfig === void 0 ? {} : _ref$unitConfig;
196
-
197
- // 非数字 或 NaN 不处理
183
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
184
+ var _options$big = options.big5,
185
+ big5 = _options$big === void 0 ? false : _options$big,
186
+ _options$unit = options.unit,
187
+ unit = _options$unit === void 0 ? true : _options$unit,
188
+ _options$zero = options.zero,
189
+ zero = _options$zero === void 0 ? '' : _options$zero,
190
+ _options$negative = options.negative,
191
+ negative = _options$negative === void 0 ? '' : _options$negative,
192
+ _options$unitConfig = options.unitConfig,
193
+ unitConfig = _options$unitConfig === void 0 ? {} : _options$unitConfig;
194
+ var _options$decimal = options.decimal,
195
+ decimal = _options$decimal === void 0 ? '' : _options$decimal; // 非数字 或 NaN 不处理
196
+
198
197
  if (typeof num !== 'number' || isNaN(num)) {
199
198
  devWarn("\u53C2\u6570\u9519\u8BEF ".concat(num, "\uFF0C\u8BF7\u4F20\u5165\u6570\u5B57"));
200
199
  return '';
@@ -39,16 +39,17 @@ import normalizeString from './normalizeString';
39
39
  */
40
40
 
41
41
  function replaceChar(str) {
42
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
43
- _ref$start = _ref.start,
44
- start = _ref$start === void 0 ? 3 : _ref$start,
45
- _ref$end = _ref.end,
46
- end = _ref$end === void 0 ? -4 : _ref$end,
47
- _ref$char = _ref["char"],
48
- _char = _ref$char === void 0 ? '*' : _ref$char,
49
- repeat = _ref.repeat,
50
- exclude = _ref.exclude;
42
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
51
43
 
44
+ var _options$char = options["char"],
45
+ _char = _options$char === void 0 ? '*' : _options$char,
46
+ exclude = options.exclude;
47
+
48
+ var _options$start = options.start,
49
+ start = _options$start === void 0 ? 3 : _options$start,
50
+ _options$end = options.end,
51
+ end = _options$end === void 0 ? -4 : _options$end,
52
+ repeat = options.repeat;
52
53
  var realStr = normalizeString(str);
53
54
  var strLen = realStr.length; // 开始位置超过str长度
54
55
 
@@ -1,5 +1,5 @@
1
1
  // @ts-ignore
2
- var version = "4.12.9";
2
+ var version = "4.13.0";
3
3
  var config = {
4
4
  // 禁用warning提示
5
5
  disableWarning: true
@@ -217,14 +217,13 @@ function hasUnallowableCharacter(val, chars) {
217
217
 
218
218
 
219
219
  function validatePassword(value) {
220
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
221
- _ref$level = _ref.level,
222
- level = _ref$level === void 0 ? 2 : _ref$level,
223
- _ref$ignoreCase = _ref.ignoreCase,
224
- ignoreCase = _ref$ignoreCase === void 0 ? false : _ref$ignoreCase,
225
- _ref$special = _ref.special,
226
- special = _ref$special === void 0 ? '\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E' : _ref$special;
227
-
220
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
221
+ var _options$level = options.level,
222
+ level = _options$level === void 0 ? 2 : _options$level,
223
+ _options$ignoreCase = options.ignoreCase,
224
+ ignoreCase = _options$ignoreCase === void 0 ? false : _options$ignoreCase,
225
+ _options$special = options.special,
226
+ special = _options$special === void 0 ? '\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E' : _options$special;
228
227
  var valStr = value;
229
228
 
230
229
  if (typeof value !== 'string') {
@@ -32,13 +32,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
32
32
  * @returns {number} 格式化后的光标位置
33
33
  */
34
34
  function calculateCursorPosition(prevPos, prevCtrlValue, rawValue, ctrlValue) {
35
- var _ref = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {},
36
- _ref$placeholderChar = _ref.placeholderChar,
37
- placeholderChar = _ref$placeholderChar === void 0 ? ' ' : _ref$placeholderChar,
38
- _ref$maskReg = _ref.maskReg,
39
- maskReg = _ref$maskReg === void 0 ? /\D/g : _ref$maskReg,
40
- type = _ref.type;
41
-
35
+ var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
36
+ var _options$placeholderC = options.placeholderChar,
37
+ placeholderChar = _options$placeholderC === void 0 ? ' ' : _options$placeholderC,
38
+ _options$maskReg = options.maskReg,
39
+ maskReg = _options$maskReg === void 0 ? /\D/g : _options$maskReg,
40
+ type = options.type;
42
41
  var realCtrlValue = (0, _normalizeString["default"])(prevCtrlValue);
43
42
  var realRawValue = (0, _normalizeString["default"])(rawValue);
44
43
  var placeholderChars = Array.isArray(placeholderChar) ? placeholderChar : [placeholderChar];
@@ -37,12 +37,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
37
37
  */
38
38
  function formatBankCard() {
39
39
  var bankCardNo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
40
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
40
41
 
41
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
42
- _ref$char = _ref["char"],
43
- _char = _ref$char === void 0 ? ' ' : _ref$char,
44
- _ref$length = _ref.length,
45
- length = _ref$length === void 0 ? 4 : _ref$length;
42
+ var _options$char = options["char"],
43
+ _char = _options$char === void 0 ? ' ' : _options$char,
44
+ _options$length = options.length,
45
+ length = _options$length === void 0 ? 4 : _options$length;
46
46
 
47
47
  var reg = new RegExp("(.{".concat(length, "})"), 'g');
48
48
  var regChar = new RegExp("".concat(_char), 'g');
@@ -35,9 +35,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
35
35
  *
36
36
  */
37
37
  function formatMobile(mobileNo) {
38
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
39
- _ref$char = _ref["char"],
40
- _char = _ref$char === void 0 ? ' ' : _ref$char;
38
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
39
+
40
+ var _options$char = options["char"],
41
+ _char = _options$char === void 0 ? ' ' : _options$char;
41
42
 
42
43
  var regChar = new RegExp(_char, 'g');
43
44
  var realValue = (0, _normalizeString["default"])(mobileNo).replace(regChar, '').substring(0, 11);
@@ -140,17 +140,16 @@ function formatDec(decStr, precision, decimal) {
140
140
 
141
141
 
142
142
  var formatMoney = function formatMoney(num) {
143
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
144
- _ref$precision = _ref.precision,
145
- precision = _ref$precision === void 0 ? 2 : _ref$precision,
146
- symbol = _ref.symbol,
147
- _ref$thousand = _ref.thousand,
148
- thousand = _ref$thousand === void 0 ? ',' : _ref$thousand,
149
- _ref$decimal = _ref.decimal,
150
- decimal = _ref$decimal === void 0 ? '.' : _ref$decimal;
151
-
152
- // 数字参数不正确,返回空字符串
143
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
144
+ var _options$precision = options.precision,
145
+ precision = _options$precision === void 0 ? 2 : _options$precision,
146
+ symbol = options.symbol,
147
+ _options$thousand = options.thousand,
148
+ thousand = _options$thousand === void 0 ? ',' : _options$thousand,
149
+ _options$decimal = options.decimal,
150
+ decimal = _options$decimal === void 0 ? '.' : _options$decimal; // 数字参数不正确,返回空字符串
153
151
  // @ts-ignore
152
+
154
153
  if (!checkNumber(num)) {
155
154
  return '';
156
155
  } // 参数规整化
package/lib/isBankCard.js CHANGED
@@ -57,12 +57,11 @@ function sumCheckCode(numStr) {
57
57
 
58
58
 
59
59
  function isBankCard(value) {
60
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
61
- _ref$loose = _ref.loose,
62
- loose = _ref$loose === void 0 ? false : _ref$loose,
63
- _ref$luhn = _ref.luhn,
64
- luhn = _ref$luhn === void 0 ? false : _ref$luhn;
65
-
60
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
61
+ var _options$loose = options.loose,
62
+ loose = _options$loose === void 0 ? false : _options$loose,
63
+ _options$luhn = options.luhn,
64
+ luhn = _options$luhn === void 0 ? false : _options$luhn;
66
65
  var valueStr = (0, _normalizeString["default"])(value);
67
66
  var validateResult = loose ? regLoose.test(valueStr) : reg.test(valueStr);
68
67
 
package/lib/isChinese.js CHANGED
@@ -41,6 +41,8 @@ var supportRegExpUnicode = RegExp.prototype.hasOwnProperty('unicode');
41
41
  * @alias module:Validator.isChinese
42
42
  * @since 1.1.0
43
43
  * @see 参考 {@link http://www.unicode.org/reports/tr38/#BlockListing|4.4 Listing of Characters Covered by the Unihan Database}
44
+ * @see 参考 {@link https://zh.wikipedia.org/wiki/Unicode字符平面映射|Unicode字符平面映射}
45
+ * @see 参考 {@link https://zh.wikipedia.org/wiki/Unicode區段|Unicode区段}
44
46
  * @param {*} value 要检测的值
45
47
  * @param {Object} [options] 配置项
46
48
  * @param {boolean} [options.loose=false] 宽松模式。如果为true,只要包含中文即为true
@@ -65,12 +67,11 @@ var supportRegExpUnicode = RegExp.prototype.hasOwnProperty('unicode');
65
67
  */
66
68
 
67
69
  function isChinese(value) {
68
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
69
- _ref$loose = _ref.loose,
70
- loose = _ref$loose === void 0 ? false : _ref$loose,
71
- _ref$useExtend = _ref.useExtend,
72
- useExtend = _ref$useExtend === void 0 ? false : _ref$useExtend;
73
-
70
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
71
+ var _options$loose = options.loose,
72
+ loose = _options$loose === void 0 ? false : _options$loose,
73
+ _options$useExtend = options.useExtend,
74
+ useExtend = _options$useExtend === void 0 ? false : _options$useExtend;
74
75
  var valueStr = (0, _normalizeString["default"])(value);
75
76
  var basicRegExp = loose ? looseChineseRegExp : chineseRegExp;
76
77
  var extendRegExp = loose ? looseChineseExtendRegExp : chineseExtendRegExp;
package/lib/isIdCard.js CHANGED
@@ -65,12 +65,11 @@ function check(id) {
65
65
 
66
66
 
67
67
  function isIdCard(value) {
68
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
69
- _ref$loose = _ref.loose,
70
- loose = _ref$loose === void 0 ? false : _ref$loose,
71
- _ref$checkCode = _ref.checkCode,
72
- checkCode = _ref$checkCode === void 0 ? true : _ref$checkCode;
73
-
68
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
69
+ var _options$loose = options.loose,
70
+ loose = _options$loose === void 0 ? false : _options$loose,
71
+ _options$checkCode = options.checkCode,
72
+ checkCode = _options$checkCode === void 0 ? true : _options$checkCode;
74
73
  var valueStr = (0, _normalizeString["default"])(value);
75
74
 
76
75
  if (valueStr.length === 15 && loose) {
package/lib/isPassword.js CHANGED
@@ -43,14 +43,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
43
43
  *
44
44
  */
45
45
  function isPassword(value) {
46
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
47
- _ref$level = _ref.level,
48
- level = _ref$level === void 0 ? 2 : _ref$level,
49
- _ref$ignoreCase = _ref.ignoreCase,
50
- ignoreCase = _ref$ignoreCase === void 0 ? false : _ref$ignoreCase,
51
- _ref$special = _ref.special,
52
- special = _ref$special === void 0 ? '\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E' : _ref$special;
53
-
46
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
47
+ var _options$level = options.level,
48
+ level = _options$level === void 0 ? 2 : _options$level,
49
+ _options$ignoreCase = options.ignoreCase,
50
+ ignoreCase = _options$ignoreCase === void 0 ? false : _options$ignoreCase,
51
+ _options$special = options.special,
52
+ special = _options$special === void 0 ? '\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E' : _options$special;
54
53
  return (0, _validatePassword["default"])(value, {
55
54
  level: level,
56
55
  ignoreCase: ignoreCase,
package/lib/isTWCard.js CHANGED
@@ -37,10 +37,9 @@ var singleRegTWCard = /^[\da-z]{10,12}$/i;
37
37
  */
38
38
 
39
39
  function isTWCard(value) {
40
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
41
- _ref$loose = _ref.loose,
42
- loose = _ref$loose === void 0 ? false : _ref$loose;
43
-
40
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
41
+ var _options$loose = options.loose,
42
+ loose = _options$loose === void 0 ? false : _options$loose;
44
43
  var valueStr = (0, _normalizeString["default"])(value);
45
44
 
46
45
  if (regTWCard.test(valueStr)) {
package/lib/isUrl.js CHANGED
@@ -9,8 +9,21 @@ var _normalizeString = _interopRequireDefault(require("./normalizeString"));
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
12
- // url正则
13
- var reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\*\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;
12
+ // 标准格式如下:
13
+ // [协议类型]://[服务器地址]:[端口号]/[资源层级UNIX文件路径][文件名]?[查询]#[片段ID]
14
+ // 完整格式如下:
15
+ // [协议类型]://[访问资源需要的凭证信息]@[服务器地址]:[端口号]/[资源层级UNIX文件路径][文件名]?[查询]#[片段ID]
16
+ //
17
+ // 其中[访问凭证信息]、[端口号]、[查询]、[片段ID]都属于选填项。
18
+ var protocalReg = '[\\w-.]+:\\/\\/';
19
+ var credentialsReg = '[-;:&=\\+\\$,\\w]+@';
20
+ var serverReg = 'localhost|(([^\\s:\\/]+?\\.)+?[^\\s:\\/]+)';
21
+ var portReg = ':\\d+';
22
+ var pathReg = '\\/.*';
23
+ var searchReg = '\\?.*';
24
+ var hashReg = '#.*';
25
+ var regWithProtocal = new RegExp("^".concat(protocalReg, "(?:").concat(credentialsReg, ")?(?:").concat(serverReg, ")(?:").concat(portReg, ")?(?:").concat(pathReg, ")*(?:").concat(searchReg, ")?(?:").concat(hashReg, ")?$"));
26
+ var regNonProtocal = new RegExp("^(?:".concat(serverReg, ")(?:").concat(portReg, ")?(?:").concat(pathReg, ")*(?:").concat(searchReg, ")?(?:").concat(hashReg, ")?$"));
14
27
  /**
15
28
  * 检测值是否为url
16
29
  *
@@ -23,18 +36,27 @@ var reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:
23
36
  * @example
24
37
  *
25
38
  * isUrl(''); // false
26
- * isUrl('8.8.8.8'); // false
39
+ * isUrl('/foo/bar'); // false
40
+ *
41
+ * isUrl('8.8.8.8'); // true
27
42
  * isUrl('example.com'); // true
28
43
  * isUrl('http://example.com'); // true
29
44
  * isUrl('https://example.com:8080'); // true
30
- * isUrl('http://www.example.com/test/123'); // true
31
- * isUrl('http://www.example.com/test/123?foo=bar'); // true
45
+ * isUrl('https://www.example.com/test/123'); // true
46
+ * isUrl('https://www.example.com/test/123?foo=bar'); // true
47
+ * isUrl('https://www.example.com/test/123?foo=中文#id'); // true
48
+ * isUrl('https://www.example.com/test/123?foo=中文#测试'); // true
49
+ * isUrl('ftp://127.0.0.1:8080/测试.tar'); // true
50
+ * isUrl('a.b'); // true
51
+ * isUrl('a.b:8080'); // true
52
+ * isUrl('p://a.b'); // true
53
+ * isUrl('p://a.b:8888'); // true
32
54
  *
33
55
  */
34
56
 
35
57
  function isUrl(value) {
36
58
  var valueStr = (0, _normalizeString["default"])(value);
37
- return reg.test(valueStr);
59
+ return regWithProtocal.test(valueStr) || regNonProtocal.test(valueStr);
38
60
  }
39
61
 
40
62
  var _default = isUrl;
@@ -191,21 +191,20 @@ function mapNumberChar(num) {
191
191
 
192
192
 
193
193
  function numberToChinese(num) {
194
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
195
- _ref$big = _ref.big5,
196
- big5 = _ref$big === void 0 ? false : _ref$big,
197
- _ref$unit = _ref.unit,
198
- unit = _ref$unit === void 0 ? true : _ref$unit,
199
- _ref$decimal = _ref.decimal,
200
- decimal = _ref$decimal === void 0 ? '' : _ref$decimal,
201
- _ref$zero = _ref.zero,
202
- zero = _ref$zero === void 0 ? '' : _ref$zero,
203
- _ref$negative = _ref.negative,
204
- negative = _ref$negative === void 0 ? '负' : _ref$negative,
205
- _ref$unitConfig = _ref.unitConfig,
206
- unitConfig = _ref$unitConfig === void 0 ? {} : _ref$unitConfig;
207
-
208
- // 非数字 或 NaN 不处理
194
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
195
+ var _options$big = options.big5,
196
+ big5 = _options$big === void 0 ? false : _options$big,
197
+ _options$unit = options.unit,
198
+ unit = _options$unit === void 0 ? true : _options$unit,
199
+ _options$zero = options.zero,
200
+ zero = _options$zero === void 0 ? '' : _options$zero,
201
+ _options$negative = options.negative,
202
+ negative = _options$negative === void 0 ? '' : _options$negative,
203
+ _options$unitConfig = options.unitConfig,
204
+ unitConfig = _options$unitConfig === void 0 ? {} : _options$unitConfig;
205
+ var _options$decimal = options.decimal,
206
+ decimal = _options$decimal === void 0 ? '' : _options$decimal; // 非数字 或 NaN 不处理
207
+
209
208
  if (typeof num !== 'number' || isNaN(num)) {
210
209
  (0, _devWarn["default"])("\u53C2\u6570\u9519\u8BEF ".concat(num, "\uFF0C\u8BF7\u4F20\u5165\u6570\u5B57"));
211
210
  return '';