util-helpers 4.11.1 → 4.12.2
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/dist/util-helpers.js +106 -71
- 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/divide.js +6 -6
- package/esm/index.js +35 -1
- package/esm/minus.js +6 -6
- package/esm/plus.js +6 -6
- package/esm/round.js +4 -5
- package/esm/times.js +6 -6
- package/esm/utils/config.js +2 -1
- package/esm/utils/math.util.js +30 -0
- package/lib/divide.js +5 -6
- package/lib/index.js +6 -0
- package/lib/minus.js +5 -6
- package/lib/plus.js +5 -6
- package/lib/round.js +4 -5
- package/lib/times.js +5 -6
- package/lib/utils/config.js +3 -1
- package/lib/utils/math.util.js +33 -0
- package/package.json +3 -1
- package/types/src/blobToDataURL.d.ts +25 -0
- package/types/src/bytesToSize.d.ts +24 -0
- package/types/src/calculateCursorPosition.d.ts +26 -0
- package/types/src/dataURLToBlob.d.ts +15 -0
- package/types/src/divide.d.ts +21 -0
- package/types/src/formatBankCard.d.ts +35 -0
- package/types/src/formatMobile.d.ts +27 -0
- package/types/src/formatMoney.d.ts +50 -0
- package/types/src/index.d.ts +45 -0
- package/types/src/isBankCard.d.ts +32 -0
- package/types/src/isBusinessLicense.d.ts +29 -0
- package/types/src/isChinese.d.ts +41 -0
- package/types/src/isEmail.d.ts +19 -0
- package/types/src/isHMCard.d.ts +24 -0
- package/types/src/isIPv4.d.ts +25 -0
- package/types/src/isIPv6.d.ts +50 -0
- package/types/src/isIdCard.d.ts +34 -0
- package/types/src/isMobile.d.ts +19 -0
- package/types/src/isPassport.d.ts +21 -0
- package/types/src/isPassword.d.ts +46 -0
- package/types/src/isPostcode.d.ts +19 -0
- package/types/src/isPromiseLike.d.ts +21 -0
- package/types/src/isQQ.d.ts +19 -0
- package/types/src/isSocialCreditCode.d.ts +31 -0
- package/types/src/isSwiftCode.d.ts +22 -0
- package/types/src/isTWCard.d.ts +23 -0
- package/types/src/isTelephone.d.ts +25 -0
- package/types/src/isUrl.d.ts +34 -0
- package/types/src/isVehicle.d.ts +29 -0
- package/types/src/isWX.d.ts +19 -0
- package/types/src/minus.d.ts +21 -0
- package/types/src/normalizeString.d.ts +22 -0
- package/types/src/numberToChinese.d.ts +57 -0
- package/types/src/padZero.d.ts +24 -0
- package/types/src/parseIdCard.d.ts +107 -0
- package/types/src/plus.d.ts +21 -0
- package/types/src/randomString.d.ts +19 -0
- package/types/src/replaceChar.d.ts +54 -0
- package/types/src/round.d.ts +22 -0
- package/types/src/safeDate.d.ts +22 -0
- package/types/src/setDataURLPrefix.d.ts +24 -0
- package/types/src/strlen.d.ts +20 -0
- package/types/src/times.d.ts +21 -0
- package/types/src/utils/config.d.ts +13 -0
- package/types/src/utils/constants.d.ts +2 -0
- package/types/src/utils/convertToString.d.ts +8 -0
- package/types/src/utils/devWarn.d.ts +7 -0
- package/types/src/utils/math.util.d.ts +63 -0
- package/types/src/utils/type/index.d.ts +19 -0
- package/types/src/utils/type/isArguments.d.ts +18 -0
- package/types/src/utils/type/isArray.d.ts +18 -0
- package/types/src/utils/type/isBoolean.d.ts +18 -0
- package/types/src/utils/type/isDate.d.ts +18 -0
- package/types/src/utils/type/isError.d.ts +18 -0
- package/types/src/utils/type/isFunction.d.ts +18 -0
- package/types/src/utils/type/isMap.d.ts +18 -0
- package/types/src/utils/type/isNaN.d.ts +18 -0
- package/types/src/utils/type/isNil.d.ts +11 -0
- package/types/src/utils/type/isNull.d.ts +18 -0
- package/types/src/utils/type/isNumber.d.ts +27 -0
- package/types/src/utils/type/isObject.d.ts +21 -0
- package/types/src/utils/type/isRegExp.d.ts +18 -0
- package/types/src/utils/type/isSet.d.ts +18 -0
- package/types/src/utils/type/isString.d.ts +18 -0
- package/types/src/utils/type/isSymbol.d.ts +18 -0
- package/types/src/utils/type/isType.d.ts +11 -0
- package/types/src/utils/type/isUndefined.d.ts +21 -0
- package/types/src/utils/type/isWeakMap.d.ts +18 -0
- package/types/src/utils/type/isWeakSet.d.ts +18 -0
- package/types/src/validatePassword.d.ts +134 -0
- package/types/src/waitTime.d.ts +20 -0
- package/types/utils/math.util.d.ts +7 -0
package/dist/util-helpers.js
CHANGED
|
@@ -562,6 +562,8 @@
|
|
|
562
562
|
return lastCode === checkCode;
|
|
563
563
|
}
|
|
564
564
|
|
|
565
|
+
const version = "4.12.2";
|
|
566
|
+
|
|
565
567
|
var config = {
|
|
566
568
|
// 禁用warning提示
|
|
567
569
|
disableWarning: true
|
|
@@ -1575,12 +1577,92 @@
|
|
|
1575
1577
|
|
|
1576
1578
|
var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;
|
|
1577
1579
|
|
|
1580
|
+
/**
|
|
1581
|
+
* 检查值是否为NaN
|
|
1582
|
+
*
|
|
1583
|
+
* @static
|
|
1584
|
+
* @alias module:Type.isNaN
|
|
1585
|
+
* @since 1.1.0
|
|
1586
|
+
* @param {*} value 检查值
|
|
1587
|
+
* @returns {boolean} 是否为NaN
|
|
1588
|
+
* @example
|
|
1589
|
+
*
|
|
1590
|
+
* isNaN(NaN)
|
|
1591
|
+
* // => true
|
|
1592
|
+
*
|
|
1593
|
+
* isNaN(1)
|
|
1594
|
+
* // => false
|
|
1595
|
+
*/
|
|
1596
|
+
|
|
1597
|
+
function _isNaN(value) {
|
|
1598
|
+
return isType(value, 'Number') && isNaN(value);
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1601
|
+
/**
|
|
1602
|
+
* 检查值是否为Number
|
|
1603
|
+
*
|
|
1604
|
+
* @static
|
|
1605
|
+
* @alias module:Type.isNumber
|
|
1606
|
+
* @since 1.1.0
|
|
1607
|
+
* @param {*} value 检查值
|
|
1608
|
+
* @returns {boolean} 是否为Number
|
|
1609
|
+
* @example
|
|
1610
|
+
*
|
|
1611
|
+
* isNumber(1)
|
|
1612
|
+
* // => true
|
|
1613
|
+
*
|
|
1614
|
+
* isNumber(Number.MIN_VALUE)
|
|
1615
|
+
* // => true
|
|
1616
|
+
*
|
|
1617
|
+
* isNumber(Infinity)
|
|
1618
|
+
* // => true
|
|
1619
|
+
*
|
|
1620
|
+
* isNumber(NaN)
|
|
1621
|
+
* // => true
|
|
1622
|
+
*
|
|
1623
|
+
* isNumber('1')
|
|
1624
|
+
* // => false
|
|
1625
|
+
*/
|
|
1626
|
+
|
|
1627
|
+
function isNumber(value) {
|
|
1628
|
+
return isType(value, 'Number');
|
|
1629
|
+
}
|
|
1630
|
+
|
|
1578
1631
|
/**
|
|
1579
1632
|
* 参考: https://github.com/nefe/number-precision/blob/master/src/index.ts
|
|
1580
1633
|
*
|
|
1581
1634
|
* 解决浮动运算问题,避免小数点后产生多位数和计算精度损失。
|
|
1582
1635
|
* 问题示例:2.3 + 2.4 = 4.699999999999999,1.0 - 0.9 = 0.09999999999999998
|
|
1583
1636
|
*/
|
|
1637
|
+
/**
|
|
1638
|
+
* 值是否为有效的数值
|
|
1639
|
+
*
|
|
1640
|
+
* @param {*} value 待检测的值
|
|
1641
|
+
* @returns {boolean} 是否为有效的数值
|
|
1642
|
+
*/
|
|
1643
|
+
|
|
1644
|
+
function isEffectiveNumeric(value) {
|
|
1645
|
+
if (isNumber(value) && !isNaN(value)) {
|
|
1646
|
+
return true;
|
|
1647
|
+
} // 避免空字符串 或 带空格的字符串
|
|
1648
|
+
|
|
1649
|
+
|
|
1650
|
+
if (isString(value)) {
|
|
1651
|
+
var fmtStrValue = value.trim(); // 带空格的字符串也不转换数字
|
|
1652
|
+
// Number(' ') => 0
|
|
1653
|
+
|
|
1654
|
+
if (fmtStrValue === value) {
|
|
1655
|
+
var numValue = fmtStrValue ? Number(fmtStrValue) : NaN;
|
|
1656
|
+
|
|
1657
|
+
if (!isNaN(numValue)) {
|
|
1658
|
+
return true;
|
|
1659
|
+
}
|
|
1660
|
+
}
|
|
1661
|
+
}
|
|
1662
|
+
|
|
1663
|
+
devWarn("".concat(value, " is not a valid number."));
|
|
1664
|
+
return false;
|
|
1665
|
+
}
|
|
1584
1666
|
/**
|
|
1585
1667
|
* 是否为科学计数法数字
|
|
1586
1668
|
*
|
|
@@ -1734,27 +1816,6 @@
|
|
|
1734
1816
|
return trimLeftZero(ret);
|
|
1735
1817
|
}
|
|
1736
1818
|
|
|
1737
|
-
/**
|
|
1738
|
-
* 检查值是否为NaN
|
|
1739
|
-
*
|
|
1740
|
-
* @static
|
|
1741
|
-
* @alias module:Type.isNaN
|
|
1742
|
-
* @since 1.1.0
|
|
1743
|
-
* @param {*} value 检查值
|
|
1744
|
-
* @returns {boolean} 是否为NaN
|
|
1745
|
-
* @example
|
|
1746
|
-
*
|
|
1747
|
-
* isNaN(NaN)
|
|
1748
|
-
* // => true
|
|
1749
|
-
*
|
|
1750
|
-
* isNaN(1)
|
|
1751
|
-
* // => false
|
|
1752
|
-
*/
|
|
1753
|
-
|
|
1754
|
-
function _isNaN(value) {
|
|
1755
|
-
return isType(value, 'Number') && isNaN(value);
|
|
1756
|
-
}
|
|
1757
|
-
|
|
1758
1819
|
var reg = /^[+-]?\d*\.?\d*$/;
|
|
1759
1820
|
/**
|
|
1760
1821
|
* 检查数字或数字字符串
|
|
@@ -2674,36 +2735,6 @@
|
|
|
2674
2735
|
return str;
|
|
2675
2736
|
}
|
|
2676
2737
|
|
|
2677
|
-
/**
|
|
2678
|
-
* 检查值是否为Number
|
|
2679
|
-
*
|
|
2680
|
-
* @static
|
|
2681
|
-
* @alias module:Type.isNumber
|
|
2682
|
-
* @since 1.1.0
|
|
2683
|
-
* @param {*} value 检查值
|
|
2684
|
-
* @returns {boolean} 是否为Number
|
|
2685
|
-
* @example
|
|
2686
|
-
*
|
|
2687
|
-
* isNumber(1)
|
|
2688
|
-
* // => true
|
|
2689
|
-
*
|
|
2690
|
-
* isNumber(Number.MIN_VALUE)
|
|
2691
|
-
* // => true
|
|
2692
|
-
*
|
|
2693
|
-
* isNumber(Infinity)
|
|
2694
|
-
* // => true
|
|
2695
|
-
*
|
|
2696
|
-
* isNumber(NaN)
|
|
2697
|
-
* // => true
|
|
2698
|
-
*
|
|
2699
|
-
* isNumber('1')
|
|
2700
|
-
* // => false
|
|
2701
|
-
*/
|
|
2702
|
-
|
|
2703
|
-
function isNumber(value) {
|
|
2704
|
-
return isType(value, 'Number');
|
|
2705
|
-
}
|
|
2706
|
-
|
|
2707
2738
|
/**
|
|
2708
2739
|
* 精确乘法,支持多个数相乘
|
|
2709
2740
|
*
|
|
@@ -2735,12 +2766,13 @@
|
|
|
2735
2766
|
|
|
2736
2767
|
if (rest.length > 0) {
|
|
2737
2768
|
return times.apply(void 0, [times(num1, num2)].concat(_toConsumableArray(rest)));
|
|
2738
|
-
} //
|
|
2769
|
+
} // 兼容处理,如果参数包含无效数值时,尝试取出有效数值参数
|
|
2739
2770
|
|
|
2740
2771
|
|
|
2741
|
-
if (
|
|
2742
|
-
|
|
2743
|
-
|
|
2772
|
+
if (!isEffectiveNumeric(num1)) {
|
|
2773
|
+
return isEffectiveNumeric(num2) ? Number(num2) : NaN;
|
|
2774
|
+
} else if (!isEffectiveNumeric(num2)) {
|
|
2775
|
+
return Number(num1);
|
|
2744
2776
|
}
|
|
2745
2777
|
|
|
2746
2778
|
var num1Changed = float2Fixed(num1);
|
|
@@ -2782,12 +2814,13 @@
|
|
|
2782
2814
|
|
|
2783
2815
|
if (rest.length > 0) {
|
|
2784
2816
|
return plus.apply(void 0, [plus(num1, num2)].concat(_toConsumableArray(rest)));
|
|
2785
|
-
} //
|
|
2817
|
+
} // 兼容处理,如果参数包含无效数值时,尝试取出有效数值参数
|
|
2786
2818
|
|
|
2787
2819
|
|
|
2788
|
-
if (
|
|
2789
|
-
|
|
2790
|
-
|
|
2820
|
+
if (!isEffectiveNumeric(num1)) {
|
|
2821
|
+
return isEffectiveNumeric(num2) ? Number(num2) : NaN;
|
|
2822
|
+
} else if (!isEffectiveNumeric(num2)) {
|
|
2823
|
+
return Number(num1);
|
|
2791
2824
|
}
|
|
2792
2825
|
|
|
2793
2826
|
var baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
|
|
@@ -2825,12 +2858,13 @@
|
|
|
2825
2858
|
|
|
2826
2859
|
if (rest.length > 0) {
|
|
2827
2860
|
return minus.apply(void 0, [minus(num1, num2)].concat(_toConsumableArray(rest)));
|
|
2828
|
-
} //
|
|
2861
|
+
} // 兼容处理,如果参数包含无效数值时,尝试取出有效数值参数
|
|
2829
2862
|
|
|
2830
2863
|
|
|
2831
|
-
if (
|
|
2832
|
-
|
|
2833
|
-
|
|
2864
|
+
if (!isEffectiveNumeric(num1)) {
|
|
2865
|
+
return isEffectiveNumeric(num2) ? Number(num2) : NaN;
|
|
2866
|
+
} else if (!isEffectiveNumeric(num2)) {
|
|
2867
|
+
return Number(num1);
|
|
2834
2868
|
}
|
|
2835
2869
|
|
|
2836
2870
|
var baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
|
|
@@ -2868,12 +2902,13 @@
|
|
|
2868
2902
|
|
|
2869
2903
|
if (rest.length > 0) {
|
|
2870
2904
|
return divide.apply(void 0, [divide(num1, num2)].concat(_toConsumableArray(rest)));
|
|
2871
|
-
} //
|
|
2905
|
+
} // 兼容处理,如果参数包含无效数值时,尝试取出有效数值参数
|
|
2872
2906
|
|
|
2873
2907
|
|
|
2874
|
-
if (
|
|
2875
|
-
|
|
2876
|
-
|
|
2908
|
+
if (!isEffectiveNumeric(num1)) {
|
|
2909
|
+
return isEffectiveNumeric(num2) ? Number(num2) : NaN;
|
|
2910
|
+
} else if (!isEffectiveNumeric(num2)) {
|
|
2911
|
+
return Number(num1);
|
|
2877
2912
|
}
|
|
2878
2913
|
|
|
2879
2914
|
var num1Changed = float2Fixed(num1);
|
|
@@ -2908,10 +2943,9 @@
|
|
|
2908
2943
|
function round(num) {
|
|
2909
2944
|
var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
2910
2945
|
|
|
2911
|
-
//
|
|
2912
|
-
if (
|
|
2913
|
-
|
|
2914
|
-
return num;
|
|
2946
|
+
// 兼容处理,如果参数包含无效数值时,返回第一个参数
|
|
2947
|
+
if (!isEffectiveNumeric(num)) {
|
|
2948
|
+
return NaN;
|
|
2915
2949
|
}
|
|
2916
2950
|
|
|
2917
2951
|
var base = Math.pow(10, precision);
|
|
@@ -3133,6 +3167,7 @@
|
|
|
3133
3167
|
exports.strlen = strlen;
|
|
3134
3168
|
exports.times = times;
|
|
3135
3169
|
exports.validatePassword = validatePassword;
|
|
3170
|
+
exports.version = version;
|
|
3136
3171
|
exports.waitTime = waitTime;
|
|
3137
3172
|
|
|
3138
3173
|
Object.defineProperty(exports, '__esModule', { value: true });
|