@planarcat/js-toolkit 1.5.1 → 1.5.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/README.md +1 -1
- package/dist/object/toFormattedNumber.d.ts +2 -2
- package/dist/object/toFormattedNumber.d.ts.map +1 -1
- package/dist/object/toFormattedNumber.js +8 -8
- package/dist/object/toFormattedNumber.js.map +1 -1
- package/dist/object/toFormattedNumberString.d.ts +2 -2
- package/dist/object/toFormattedNumberString.d.ts.map +1 -1
- package/dist/object/toFormattedNumberString.js +7 -5
- package/dist/object/toFormattedNumberString.js.map +1 -1
- package/dist/types/object.d.ts +2 -2
- package/dist/types/object.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -110,7 +110,7 @@ console.log(toFormattedNumberString(1234.5678, { prefix: '$', suffix: ' USD' }))
|
|
|
110
110
|
// 输出: "$1234.5678 USD"
|
|
111
111
|
|
|
112
112
|
// 本地化格式
|
|
113
|
-
console.log(toFormattedNumberString(1234567.89, {
|
|
113
|
+
console.log(toFormattedNumberString(1234567.89, { localized: true }));
|
|
114
114
|
// 输出: "1,234,567.89"
|
|
115
115
|
|
|
116
116
|
// 自定义NaN和0显示
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
* toFormattedNumber('abc', { nanValue: -1 }); // -1
|
|
56
56
|
* ```
|
|
57
57
|
*/
|
|
58
|
-
declare function toFormattedNumber(object: unknown[], options?: import(
|
|
59
|
-
declare function toFormattedNumber(object: unknown, options?: import(
|
|
58
|
+
declare function toFormattedNumber(object: unknown[], options?: import('../types/object').ToFormattedNumberOptions): number[];
|
|
59
|
+
declare function toFormattedNumber(object: unknown, options?: import('../types/object').ToFormattedNumberOptions): number;
|
|
60
60
|
export default toFormattedNumber;
|
|
61
61
|
//# sourceMappingURL=toFormattedNumber.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toFormattedNumber.d.ts","sourceRoot":"","sources":["../../src/object/toFormattedNumber.ts"],"names":[],"mappings":"AA0CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH,iBAAS,iBAAiB,
|
|
1
|
+
{"version":3,"file":"toFormattedNumber.d.ts","sourceRoot":"","sources":["../../src/object/toFormattedNumber.ts"],"names":[],"mappings":"AA0CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH,iBAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAAC;AAEtH,iBAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,wBAAwB,GAAG,MAAM,CAAC;AAgDlH,eAAe,iBAAiB,CAAC"}
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
8
8
|
function extractNumberFromString(str) {
|
|
9
9
|
// 匹配数字体系:0~9,小数点,正负号,科学计数法
|
|
10
10
|
const match = str.match(/[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?/);
|
|
11
|
-
return match ? match[0] :
|
|
11
|
+
return match ? match[0] : '';
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* 将单个值转换为数字
|
|
@@ -17,24 +17,24 @@ function extractNumberFromString(str) {
|
|
|
17
17
|
*/
|
|
18
18
|
function convertToNumber(value) {
|
|
19
19
|
switch (typeof value) {
|
|
20
|
-
case
|
|
20
|
+
case 'number':
|
|
21
21
|
return value;
|
|
22
|
-
case
|
|
22
|
+
case 'string': {
|
|
23
23
|
const numStr = extractNumberFromString(value);
|
|
24
24
|
return numStr ? Number(numStr) : 0;
|
|
25
25
|
}
|
|
26
|
-
case
|
|
26
|
+
case 'boolean':
|
|
27
27
|
return value ? 1 : 0;
|
|
28
|
-
case
|
|
29
|
-
case
|
|
28
|
+
case 'function':
|
|
29
|
+
case 'symbol':
|
|
30
30
|
return NaN;
|
|
31
|
-
case
|
|
31
|
+
case 'object':
|
|
32
32
|
if (value === null) {
|
|
33
33
|
return NaN;
|
|
34
34
|
}
|
|
35
35
|
// 其他对象类型返回NaN
|
|
36
36
|
return NaN;
|
|
37
|
-
case
|
|
37
|
+
case 'undefined':
|
|
38
38
|
return NaN;
|
|
39
39
|
default:
|
|
40
40
|
return NaN;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toFormattedNumber.js","sourceRoot":"","sources":["../../src/object/toFormattedNumber.ts"],"names":[],"mappings":";;AAAA;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,GAAW;
|
|
1
|
+
{"version":3,"file":"toFormattedNumber.js","sourceRoot":"","sources":["../../src/object/toFormattedNumber.ts"],"names":[],"mappings":";;AAAA;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,GAAW;IACxC,2BAA2B;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAc;IACnC,QAAQ,OAAO,KAAK,EAAE,CAAC;QACnB,KAAK,QAAQ;YACT,OAAO,KAAK,CAAC;QACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,SAAS;YACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ;YACT,OAAO,GAAG,CAAC;QACf,KAAK,QAAQ;YACT,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAC;YACf,CAAC;YACD,cAAc;YACd,OAAO,GAAG,CAAC;QACf,KAAK,WAAW;YACZ,OAAO,GAAG,CAAC;QACf;YACI,OAAO,GAAG,CAAC;IACnB,CAAC;AACL,CAAC;AA+DD,QAAQ;AACR,SAAS,iBAAiB,CAAC,MAAe,EAAE,OAA4D;IACpG,WAAW;IACX,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAE/D;;;;OAIG;IACH,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAU,EAAE;QAC/C,UAAU;QACV,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,yBAAyB;QACzB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YACzB,gBAAgB;YAChB,OAAO,GAAG,CAAC;QACf,CAAC;aAAM,CAAC;YACJ,eAAe;YACf,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC,CAAC;IAEF;;;;OAIG;IACH,MAAM,YAAY,GAAG,CAAC,KAAc,EAAqB,EAAE;QACvD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,WAAW;YACX,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAa,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,QAAQ;YACR,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACnC,QAAQ;YACR,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;IACL,CAAC,CAAC;IAEF,QAAQ;IACR,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,kBAAe,iBAAiB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare function toFormattedNumberString(object: unknown[], options?: import(
|
|
2
|
-
declare function toFormattedNumberString(object: unknown, options?: import(
|
|
1
|
+
declare function toFormattedNumberString(object: unknown[], options?: import('../types/object').ToFormattedNumberStringOptions): string[];
|
|
2
|
+
declare function toFormattedNumberString(object: unknown, options?: import('../types/object').ToFormattedNumberStringOptions): string;
|
|
3
3
|
export default toFormattedNumberString;
|
|
4
4
|
//# sourceMappingURL=toFormattedNumberString.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toFormattedNumberString.d.ts","sourceRoot":"","sources":["../../src/object/toFormattedNumberString.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toFormattedNumberString.d.ts","sourceRoot":"","sources":["../../src/object/toFormattedNumberString.ts"],"names":[],"mappings":"AAyEA,iBAAS,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,8BAA8B,GAAG,MAAM,EAAE,CAAC;AAElI,iBAAS,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,8BAA8B,GAAG,MAAM,CAAC;AAyH9H,eAAe,uBAAuB,CAAC"}
|
|
@@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
* number: 保留指定小数位,不够时补0
|
|
18
18
|
* @param options.nanValue - 当值为NaN时的显示,默认'NaN'
|
|
19
19
|
* @param options.zeroValue - 当值为0时的显示,默认'0'
|
|
20
|
-
* @param options.
|
|
20
|
+
* @param options.localized - 是否使用本地化格式,默认false
|
|
21
21
|
* @param options.preProcessor - 预处理函数,在数字转换后、字符串格式化前应用
|
|
22
22
|
* @param options.prefix - 前缀,可以是字符串或函数,默认''
|
|
23
23
|
* 如果是函数,会接收格式化前的数字作为参数,返回字符串作为前缀
|
|
@@ -41,6 +41,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
41
41
|
* toFormattedNumberString(123.456, { prefix: '$', suffix: ' USD' }); // "$123.456 USD"
|
|
42
42
|
*
|
|
43
43
|
* // 本地化格式
|
|
44
|
+
* toFormattedNumberString(1234567.89, { localized: true }); // "1,234,567.89"
|
|
45
|
+
* // 兼容旧的useLocalizedFormat参数
|
|
44
46
|
* toFormattedNumberString(1234567.89, { useLocalizedFormat: true }); // "1,234,567.89"
|
|
45
47
|
*
|
|
46
48
|
* // 自定义NaN和0显示
|
|
@@ -75,7 +77,7 @@ const toFormattedNumber_1 = __importDefault(require("./toFormattedNumber"));
|
|
|
75
77
|
// 主函数实现
|
|
76
78
|
function toFormattedNumberString(object, options) {
|
|
77
79
|
// 解构并设置默认值
|
|
78
|
-
const { decimalPlaces = true, nanValue =
|
|
80
|
+
const { decimalPlaces = true, nanValue = 'NaN', zeroValue = '0', localized = false, preProcessor, prefix = '', suffix = '' } = options || {};
|
|
79
81
|
/**
|
|
80
82
|
* 处理前缀或后缀,可以是字符串或函数
|
|
81
83
|
* @param prefixOrSuffix - 前缀或后缀,可以是字符串或函数
|
|
@@ -83,7 +85,7 @@ function toFormattedNumberString(object, options) {
|
|
|
83
85
|
* @returns 处理后的前缀或后缀字符串
|
|
84
86
|
*/
|
|
85
87
|
const processPrefixSuffix = (prefixOrSuffix, num) => {
|
|
86
|
-
if (typeof prefixOrSuffix ===
|
|
88
|
+
if (typeof prefixOrSuffix === 'function') {
|
|
87
89
|
return prefixOrSuffix(num);
|
|
88
90
|
}
|
|
89
91
|
return prefixOrSuffix;
|
|
@@ -113,7 +115,7 @@ function toFormattedNumberString(object, options) {
|
|
|
113
115
|
const processedNum = preProcessor ? preProcessor(num) : num;
|
|
114
116
|
// 格式化数字为字符串
|
|
115
117
|
let strNum;
|
|
116
|
-
if (
|
|
118
|
+
if (localized) {
|
|
117
119
|
// 使用本地化格式
|
|
118
120
|
if (decimalPlaces === true) {
|
|
119
121
|
// 保留所有小数位
|
|
@@ -161,7 +163,7 @@ function toFormattedNumberString(object, options) {
|
|
|
161
163
|
}
|
|
162
164
|
else {
|
|
163
165
|
// 检查是否为无数字的字符串
|
|
164
|
-
if (typeof value ===
|
|
166
|
+
if (typeof value === 'string' && !hasNumbers(value)) {
|
|
165
167
|
// 无数字的字符串返回0
|
|
166
168
|
return addPrefixSuffix(zeroValue, 0);
|
|
167
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toFormattedNumberString.js","sourceRoot":"","sources":["../../src/object/toFormattedNumberString.ts"],"names":[],"mappings":";;;;;AAAA
|
|
1
|
+
{"version":3,"file":"toFormattedNumberString.js","sourceRoot":"","sources":["../../src/object/toFormattedNumberString.ts"],"names":[],"mappings":"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"}
|
package/dist/types/object.d.ts
CHANGED
|
@@ -34,10 +34,10 @@ export interface ToFormattedNumberStringOptions extends CommonFormatOptions {
|
|
|
34
34
|
*/
|
|
35
35
|
zeroValue?: string;
|
|
36
36
|
/**
|
|
37
|
-
*
|
|
37
|
+
* 是否使用本地化格式,
|
|
38
38
|
* 默认false。
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
localized?: boolean;
|
|
41
41
|
/**
|
|
42
42
|
* 预处理函数,在对象被处理为数字后调用,
|
|
43
43
|
* 默认无。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/types/object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,mBAAmB;
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/types/object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACjE;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA+B,SAAQ,mBAAmB;IACvE;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC9C;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CACjD"}
|
package/package.json
CHANGED