@fast-china/utils 1.0.14 → 1.0.16

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.
@@ -43,4 +43,68 @@ export declare const stringUtil: {
43
43
  * 复制
44
44
  */
45
45
  copy(value: string): Promise<void>;
46
+ /**
47
+ * 使用程序运行的语言将Number转为特定格式的字符串
48
+ */
49
+ toLocaleString(value: string | number, options?: Intl.NumberFormatOptions): string;
50
+ /**
51
+ * 使用程序运行的语言将Number转为特定格式的字符串
52
+ * @description 默认保留2位小数,补齐2位,不显示千分位
53
+ */
54
+ toLocaleString_i2x2(value: string | number, options?: Intl.NumberFormatOptions): string;
55
+ /**
56
+ * 使用程序运行的语言将Number转为特定格式的字符串
57
+ * @description 默认保留2位小数,补齐2位,显示千分位
58
+ */
59
+ toLocaleString_i2x2g(value: string | number, options?: Intl.NumberFormatOptions): string;
60
+ /**
61
+ * 使用程序运行的语言将Number转为特定格式的字符串
62
+ * @description 默认保留4位小数,补齐2位,不显示千分位
63
+ */
64
+ toLocaleString_i2x4(value: string | number, options?: Intl.NumberFormatOptions): string;
65
+ /**
66
+ * 使用程序运行的语言将Number转为特定格式的字符串
67
+ * @description 默认保留4位小数,补齐2位,显示千分位
68
+ */
69
+ toLocaleString_i2x4g(value: string | number, options?: Intl.NumberFormatOptions): string;
70
+ /**
71
+ * 使用程序运行的语言将Number转为特定格式的字符串
72
+ * @description 默认保留6位小数,补齐2位,不显示千分位
73
+ */
74
+ toLocaleString_i2x6(value: string | number, options?: Intl.NumberFormatOptions): string;
75
+ /**
76
+ * 使用程序运行的语言将Number转为特定格式的字符串
77
+ * @description 默认保留6位小数,补齐2位,显示千分位
78
+ */
79
+ toLocaleString_i2x6g(value: string | number, options?: Intl.NumberFormatOptions): string;
80
+ /**
81
+ * 使用程序运行的语言将Number转为特定格式的字符串
82
+ * @description 默认保留4位小数,补齐4位,不显示千分位
83
+ */
84
+ toLocaleString_i4x4(value: string | number, options?: Intl.NumberFormatOptions): string;
85
+ /**
86
+ * 使用程序运行的语言将Number转为特定格式的字符串
87
+ * @description 默认保留4位小数,补齐4位,显示千分位
88
+ */
89
+ toLocaleString_i4x4g(value: string | number, options?: Intl.NumberFormatOptions): string;
90
+ /**
91
+ * 使用程序运行的语言将Number转为特定格式的字符串
92
+ * @description 默认保留6位小数,补齐4位,不显示千分位
93
+ */
94
+ toLocaleString_i4x6(value: string | number, options?: Intl.NumberFormatOptions): string;
95
+ /**
96
+ * 使用程序运行的语言将Number转为特定格式的字符串
97
+ * @description 默认保留6位小数,补齐4位,显示千分位
98
+ */
99
+ toLocaleString_i4x6g(value: string | number, options?: Intl.NumberFormatOptions): string;
100
+ /**
101
+ * 使用程序运行的语言将Number转为特定格式的字符串
102
+ * @description 默认保留6位小数,补齐6位,不显示千分位
103
+ */
104
+ toLocaleString_i6x6(value: string | number, options?: Intl.NumberFormatOptions): string;
105
+ /**
106
+ * 使用程序运行的语言将Number转为特定格式的字符串
107
+ * @description 默认保留6位小数,补齐6位,显示千分位
108
+ */
109
+ toLocaleString_i6x6g(value: string | number, options?: Intl.NumberFormatOptions): string;
46
110
  };
@@ -1,4 +1,11 @@
1
- import { isString } from "lodash-unified";
1
+ import { merge, isNumber, isString } from "lodash-unified";
2
+ let language;
3
+ const languageMap = {
4
+ zh: "zh-CN",
5
+ en: "en-US",
6
+ zh_CN: "zh-CN",
7
+ zh_TW: "zh-TW"
8
+ };
2
9
  const stringUtil = {
3
10
  /**
4
11
  * 获取Url参数
@@ -123,6 +130,168 @@ const stringUtil = {
123
130
  textareaEl.remove();
124
131
  }
125
132
  }
133
+ },
134
+ /**
135
+ * 使用程序运行的语言将Number转为特定格式的字符串
136
+ */
137
+ toLocaleString(value, options) {
138
+ if (value) {
139
+ if (isNumber(value)) {
140
+ if (typeof uni !== "undefined") {
141
+ if (!language) {
142
+ language = uni.getAppBaseInfo().language;
143
+ }
144
+ return value.toLocaleString(languageMap[language] || "zh-CN", options);
145
+ } else {
146
+ return value.toLocaleString(navigator.language || "zh-CN", options);
147
+ }
148
+ }
149
+ }
150
+ return value;
151
+ },
152
+ /**
153
+ * 使用程序运行的语言将Number转为特定格式的字符串
154
+ * @description 默认保留2位小数,补齐2位,不显示千分位
155
+ */
156
+ toLocaleString_i2x2(value, options) {
157
+ options = merge(options || {}, {
158
+ minimumFractionDigits: 2,
159
+ maximumFractionDigits: 2,
160
+ useGrouping: false
161
+ });
162
+ return this.toLocaleString(value, options);
163
+ },
164
+ /**
165
+ * 使用程序运行的语言将Number转为特定格式的字符串
166
+ * @description 默认保留2位小数,补齐2位,显示千分位
167
+ */
168
+ toLocaleString_i2x2g(value, options) {
169
+ options = merge(options || {}, {
170
+ minimumFractionDigits: 2,
171
+ maximumFractionDigits: 2,
172
+ useGrouping: true
173
+ });
174
+ return this.toLocaleString(value, options);
175
+ },
176
+ /**
177
+ * 使用程序运行的语言将Number转为特定格式的字符串
178
+ * @description 默认保留4位小数,补齐2位,不显示千分位
179
+ */
180
+ toLocaleString_i2x4(value, options) {
181
+ options = merge(options || {}, {
182
+ minimumFractionDigits: 2,
183
+ maximumFractionDigits: 4,
184
+ useGrouping: false
185
+ });
186
+ return this.toLocaleString(value, options);
187
+ },
188
+ /**
189
+ * 使用程序运行的语言将Number转为特定格式的字符串
190
+ * @description 默认保留4位小数,补齐2位,显示千分位
191
+ */
192
+ toLocaleString_i2x4g(value, options) {
193
+ options = merge(options || {}, {
194
+ minimumFractionDigits: 2,
195
+ maximumFractionDigits: 4,
196
+ useGrouping: true
197
+ });
198
+ return this.toLocaleString(value, options);
199
+ },
200
+ /**
201
+ * 使用程序运行的语言将Number转为特定格式的字符串
202
+ * @description 默认保留6位小数,补齐2位,不显示千分位
203
+ */
204
+ toLocaleString_i2x6(value, options) {
205
+ options = merge(options || {}, {
206
+ minimumFractionDigits: 2,
207
+ maximumFractionDigits: 6,
208
+ useGrouping: false
209
+ });
210
+ return this.toLocaleString(value, options);
211
+ },
212
+ /**
213
+ * 使用程序运行的语言将Number转为特定格式的字符串
214
+ * @description 默认保留6位小数,补齐2位,显示千分位
215
+ */
216
+ toLocaleString_i2x6g(value, options) {
217
+ options = merge(options || {}, {
218
+ minimumFractionDigits: 2,
219
+ maximumFractionDigits: 6,
220
+ useGrouping: true
221
+ });
222
+ return this.toLocaleString(value, options);
223
+ },
224
+ /**
225
+ * 使用程序运行的语言将Number转为特定格式的字符串
226
+ * @description 默认保留4位小数,补齐4位,不显示千分位
227
+ */
228
+ toLocaleString_i4x4(value, options) {
229
+ options = merge(options || {}, {
230
+ minimumFractionDigits: 4,
231
+ maximumFractionDigits: 4,
232
+ useGrouping: false
233
+ });
234
+ return this.toLocaleString(value, options);
235
+ },
236
+ /**
237
+ * 使用程序运行的语言将Number转为特定格式的字符串
238
+ * @description 默认保留4位小数,补齐4位,显示千分位
239
+ */
240
+ toLocaleString_i4x4g(value, options) {
241
+ options = merge(options || {}, {
242
+ minimumFractionDigits: 4,
243
+ maximumFractionDigits: 4,
244
+ useGrouping: true
245
+ });
246
+ return this.toLocaleString(value, options);
247
+ },
248
+ /**
249
+ * 使用程序运行的语言将Number转为特定格式的字符串
250
+ * @description 默认保留6位小数,补齐4位,不显示千分位
251
+ */
252
+ toLocaleString_i4x6(value, options) {
253
+ options = merge(options || {}, {
254
+ minimumFractionDigits: 4,
255
+ maximumFractionDigits: 6,
256
+ useGrouping: false
257
+ });
258
+ return this.toLocaleString(value, options);
259
+ },
260
+ /**
261
+ * 使用程序运行的语言将Number转为特定格式的字符串
262
+ * @description 默认保留6位小数,补齐4位,显示千分位
263
+ */
264
+ toLocaleString_i4x6g(value, options) {
265
+ options = merge(options || {}, {
266
+ minimumFractionDigits: 4,
267
+ maximumFractionDigits: 6,
268
+ useGrouping: true
269
+ });
270
+ return this.toLocaleString(value, options);
271
+ },
272
+ /**
273
+ * 使用程序运行的语言将Number转为特定格式的字符串
274
+ * @description 默认保留6位小数,补齐6位,不显示千分位
275
+ */
276
+ toLocaleString_i6x6(value, options) {
277
+ options = merge(options || {}, {
278
+ minimumFractionDigits: 6,
279
+ maximumFractionDigits: 6,
280
+ useGrouping: false
281
+ });
282
+ return this.toLocaleString(value, options);
283
+ },
284
+ /**
285
+ * 使用程序运行的语言将Number转为特定格式的字符串
286
+ * @description 默认保留6位小数,补齐6位,显示千分位
287
+ */
288
+ toLocaleString_i6x6g(value, options) {
289
+ options = merge(options || {}, {
290
+ minimumFractionDigits: 6,
291
+ maximumFractionDigits: 6,
292
+ useGrouping: true
293
+ });
294
+ return this.toLocaleString(value, options);
126
295
  }
127
296
  };
128
297
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/string/index.ts"],"sourcesContent":["import { isString } from \"lodash-unified\";\n\n/**\n * 字符串工具类\n */\nexport const stringUtil = {\n\t/**\n\t * 获取Url参数\n\t */\n\tgetUrlParams(url: string): Record<string, any> {\n\t\tconst regex = /[?&][^=?&]+=[^?&]+/g;\n\t\tconst params: Record<string, any> = {};\n\n\t\tlet match;\n\t\twhile ((match = regex.exec(url)) !== null) {\n\t\t\tconst [key, value] = match[0].substring(1).split(\"=\");\n\t\t\tparams[key] = decodeURIComponent(value);\n\t\t}\n\n\t\treturn params;\n\t},\n\t/**\n\t * 是否为JSON字符串\n\t */\n\tisJson(value: string): boolean {\n\t\tif (!isString(value)) return false;\n\n\t\tvalue = value.replace(/\\s/g, \"\").replace(/\\n|\\r/, \"\");\n\n\t\tif (/^\\{.*?\\}$/.test(value)) return /\".*?\":/.test(value);\n\n\t\tif (/^\\[.*?\\]$/.test(value)) {\n\t\t\treturn value\n\t\t\t\t.replace(/^\\[/, \"\")\n\t\t\t\t.replace(/\\]$/, \"\")\n\t\t\t\t.replace(/\\},\\{/g, \"}\\n{\")\n\t\t\t\t.split(/\\n/)\n\t\t\t\t.map((s) => {\n\t\t\t\t\treturn stringUtil.isJson(s);\n\t\t\t\t})\n\t\t\t\t.reduce((prev, curr) => {\n\t\t\t\t\treturn !!curr;\n\t\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t},\n\t/**\n\t * 切割骆驼命名式字符串\n\t */\n\tsplitCamelCase(value: string): string[] {\n\t\tif (!value) return [];\n\n\t\tif (value.length === 1) return [value];\n\n\t\treturn value.split(/(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})/u).filter((token) => token.length > 0);\n\t},\n\t/**\n\t * 将字符串转为 camelCase 格式,支持 - 或 _ 分隔的字符串\n\t * 例如:'hello-world' 或 'hello_world' => 'helloWorld'\n\t */\n\ttoCamelCase(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.replace(/[-_](\\w)/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n\t},\n\t/**\n\t * 字符串首字母大写\n\t */\n\tfirstCharToUpper(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toUpperCase() + value.slice(1);\n\t},\n\t/**\n\t * 字符串首字母小写\n\t */\n\tfirstCharToLower(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toLowerCase() + value.slice(1);\n\t},\n\t/**\n\t * 截取指定长度的字符串\n\t */\n\tsubStringWithEllipsis(value: string, length: number, suffix = \"...\"): string {\n\t\tif (!value) return \"\";\n\t\treturn value.length > length ? value.substring(0, length) + suffix : value;\n\t},\n\t/**\n\t * 生成随机字符串\n\t */\n\tgenerateRandomString(length: number): string {\n\t\tconst characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\t\tlet randomString = \"\";\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\t\trandomString += characters.charAt(randomIndex);\n\t\t}\n\t\treturn randomString;\n\t},\n\t/**\n\t * @description 生成唯一 uuid\n\t */\n\tgenerateUUID(): string {\n\t\tlet uuid = \"\";\n\t\tfor (let i = 0; i < 32; i++) {\n\t\t\tconst random = (Math.random() * 16) | 0;\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) uuid += \"-\";\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n\t\t}\n\t\treturn uuid;\n\t},\n\t/**\n\t * 复制\n\t */\n\tasync copy(value: string): Promise<void> {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tuni.setClipboardData({\n\t\t\t\t\tdata: value,\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\tfail: () => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// navigator.clipboard 需要https等安全上下文\n\t\t\tif (navigator?.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(value);\n\t\t\t} else {\n\t\t\t\tconst textareaEl = document.createElement(\"textarea\");\n\t\t\t\ttextareaEl.value = value;\n\t\t\t\t// 使文本域不显示\n\t\t\t\ttextareaEl.style.position = \"absolute\";\n\t\t\t\ttextareaEl.style.opacity = \"0\";\n\t\t\t\ttextareaEl.style.left = \"-999999px\";\n\t\t\t\ttextareaEl.style.top = \"-999999px\";\n\t\t\t\tdocument.body.appendChild(textareaEl);\n\t\t\t\ttextareaEl.focus();\n\t\t\t\ttextareaEl.select();\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\ttextareaEl.remove();\n\t\t\t}\n\t\t}\n\t},\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/string/index.ts"],"sourcesContent":["import { isNumber, isString, merge } from \"lodash-unified\";\n\nlet language: string;\nconst languageMap = {\n\tzh: \"zh-CN\",\n\ten: \"en-US\",\n\tzh_CN: \"zh-CN\",\n\tzh_TW: \"zh-TW\",\n};\n\n/**\n * 字符串工具类\n */\nexport const stringUtil = {\n\t/**\n\t * 获取Url参数\n\t */\n\tgetUrlParams(url: string): Record<string, any> {\n\t\tconst regex = /[?&][^=?&]+=[^?&]+/g;\n\t\tconst params: Record<string, any> = {};\n\n\t\tlet match;\n\t\twhile ((match = regex.exec(url)) !== null) {\n\t\t\tconst [key, value] = match[0].substring(1).split(\"=\");\n\t\t\tparams[key] = decodeURIComponent(value);\n\t\t}\n\n\t\treturn params;\n\t},\n\t/**\n\t * 是否为JSON字符串\n\t */\n\tisJson(value: string): boolean {\n\t\tif (!isString(value)) return false;\n\n\t\tvalue = value.replace(/\\s/g, \"\").replace(/\\n|\\r/, \"\");\n\n\t\tif (/^\\{.*?\\}$/.test(value)) return /\".*?\":/.test(value);\n\n\t\tif (/^\\[.*?\\]$/.test(value)) {\n\t\t\treturn value\n\t\t\t\t.replace(/^\\[/, \"\")\n\t\t\t\t.replace(/\\]$/, \"\")\n\t\t\t\t.replace(/\\},\\{/g, \"}\\n{\")\n\t\t\t\t.split(/\\n/)\n\t\t\t\t.map((s) => {\n\t\t\t\t\treturn stringUtil.isJson(s);\n\t\t\t\t})\n\t\t\t\t.reduce((prev, curr) => {\n\t\t\t\t\treturn !!curr;\n\t\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t},\n\t/**\n\t * 切割骆驼命名式字符串\n\t */\n\tsplitCamelCase(value: string): string[] {\n\t\tif (!value) return [];\n\n\t\tif (value.length === 1) return [value];\n\n\t\treturn value.split(/(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})/u).filter((token) => token.length > 0);\n\t},\n\t/**\n\t * 将字符串转为 camelCase 格式,支持 - 或 _ 分隔的字符串\n\t * 例如:'hello-world' 或 'hello_world' => 'helloWorld'\n\t */\n\ttoCamelCase(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.replace(/[-_](\\w)/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n\t},\n\t/**\n\t * 字符串首字母大写\n\t */\n\tfirstCharToUpper(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toUpperCase() + value.slice(1);\n\t},\n\t/**\n\t * 字符串首字母小写\n\t */\n\tfirstCharToLower(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toLowerCase() + value.slice(1);\n\t},\n\t/**\n\t * 截取指定长度的字符串\n\t */\n\tsubStringWithEllipsis(value: string, length: number, suffix = \"...\"): string {\n\t\tif (!value) return \"\";\n\t\treturn value.length > length ? value.substring(0, length) + suffix : value;\n\t},\n\t/**\n\t * 生成随机字符串\n\t */\n\tgenerateRandomString(length: number): string {\n\t\tconst characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\t\tlet randomString = \"\";\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\t\trandomString += characters.charAt(randomIndex);\n\t\t}\n\t\treturn randomString;\n\t},\n\t/**\n\t * @description 生成唯一 uuid\n\t */\n\tgenerateUUID(): string {\n\t\tlet uuid = \"\";\n\t\tfor (let i = 0; i < 32; i++) {\n\t\t\tconst random = (Math.random() * 16) | 0;\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) uuid += \"-\";\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n\t\t}\n\t\treturn uuid;\n\t},\n\t/**\n\t * 复制\n\t */\n\tasync copy(value: string): Promise<void> {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tuni.setClipboardData({\n\t\t\t\t\tdata: value,\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\tfail: () => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// navigator.clipboard 需要https等安全上下文\n\t\t\tif (navigator?.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(value);\n\t\t\t} else {\n\t\t\t\tconst textareaEl = document.createElement(\"textarea\");\n\t\t\t\ttextareaEl.value = value;\n\t\t\t\t// 使文本域不显示\n\t\t\t\ttextareaEl.style.position = \"absolute\";\n\t\t\t\ttextareaEl.style.opacity = \"0\";\n\t\t\t\ttextareaEl.style.left = \"-999999px\";\n\t\t\t\ttextareaEl.style.top = \"-999999px\";\n\t\t\t\tdocument.body.appendChild(textareaEl);\n\t\t\t\ttextareaEl.focus();\n\t\t\t\ttextareaEl.select();\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\ttextareaEl.remove();\n\t\t\t}\n\t\t}\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t */\n\ttoLocaleString(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\tif (value) {\n\t\t\tif (isNumber(value)) {\n\t\t\t\tif (typeof uni !== \"undefined\") {\n\t\t\t\t\tif (!language) {\n\t\t\t\t\t\tlanguage = uni.getAppBaseInfo().language;\n\t\t\t\t\t}\n\t\t\t\t\treturn value.toLocaleString(languageMap[language] || \"zh-CN\", options);\n\t\t\t\t} else {\n\t\t\t\t\treturn value.toLocaleString(navigator.language || \"zh-CN\", options);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn value as string;\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留2位小数,补齐2位,不显示千分位\n\t */\n\ttoLocaleString_i2x2(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 2,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留2位小数,补齐2位,显示千分位\n\t */\n\ttoLocaleString_i2x2g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 2,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐2位,不显示千分位\n\t */\n\ttoLocaleString_i2x4(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐2位,显示千分位\n\t */\n\ttoLocaleString_i2x4g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐2位,不显示千分位\n\t */\n\ttoLocaleString_i2x6(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐2位,显示千分位\n\t */\n\ttoLocaleString_i2x6g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐4位,不显示千分位\n\t */\n\ttoLocaleString_i4x4(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐4位,显示千分位\n\t */\n\ttoLocaleString_i4x4g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐4位,不显示千分位\n\t */\n\ttoLocaleString_i4x6(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐4位,显示千分位\n\t */\n\ttoLocaleString_i4x6g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐6位,不显示千分位\n\t */\n\ttoLocaleString_i6x6(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 6,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐6位,显示千分位\n\t */\n\ttoLocaleString_i6x6g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 6,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n};\n"],"names":[],"mappings":"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"}
@@ -43,4 +43,68 @@ export declare const stringUtil: {
43
43
  * 复制
44
44
  */
45
45
  copy(value: string): Promise<void>;
46
+ /**
47
+ * 使用程序运行的语言将Number转为特定格式的字符串
48
+ */
49
+ toLocaleString(value: string | number, options?: Intl.NumberFormatOptions): string;
50
+ /**
51
+ * 使用程序运行的语言将Number转为特定格式的字符串
52
+ * @description 默认保留2位小数,补齐2位,不显示千分位
53
+ */
54
+ toLocaleString_i2x2(value: string | number, options?: Intl.NumberFormatOptions): string;
55
+ /**
56
+ * 使用程序运行的语言将Number转为特定格式的字符串
57
+ * @description 默认保留2位小数,补齐2位,显示千分位
58
+ */
59
+ toLocaleString_i2x2g(value: string | number, options?: Intl.NumberFormatOptions): string;
60
+ /**
61
+ * 使用程序运行的语言将Number转为特定格式的字符串
62
+ * @description 默认保留4位小数,补齐2位,不显示千分位
63
+ */
64
+ toLocaleString_i2x4(value: string | number, options?: Intl.NumberFormatOptions): string;
65
+ /**
66
+ * 使用程序运行的语言将Number转为特定格式的字符串
67
+ * @description 默认保留4位小数,补齐2位,显示千分位
68
+ */
69
+ toLocaleString_i2x4g(value: string | number, options?: Intl.NumberFormatOptions): string;
70
+ /**
71
+ * 使用程序运行的语言将Number转为特定格式的字符串
72
+ * @description 默认保留6位小数,补齐2位,不显示千分位
73
+ */
74
+ toLocaleString_i2x6(value: string | number, options?: Intl.NumberFormatOptions): string;
75
+ /**
76
+ * 使用程序运行的语言将Number转为特定格式的字符串
77
+ * @description 默认保留6位小数,补齐2位,显示千分位
78
+ */
79
+ toLocaleString_i2x6g(value: string | number, options?: Intl.NumberFormatOptions): string;
80
+ /**
81
+ * 使用程序运行的语言将Number转为特定格式的字符串
82
+ * @description 默认保留4位小数,补齐4位,不显示千分位
83
+ */
84
+ toLocaleString_i4x4(value: string | number, options?: Intl.NumberFormatOptions): string;
85
+ /**
86
+ * 使用程序运行的语言将Number转为特定格式的字符串
87
+ * @description 默认保留4位小数,补齐4位,显示千分位
88
+ */
89
+ toLocaleString_i4x4g(value: string | number, options?: Intl.NumberFormatOptions): string;
90
+ /**
91
+ * 使用程序运行的语言将Number转为特定格式的字符串
92
+ * @description 默认保留6位小数,补齐4位,不显示千分位
93
+ */
94
+ toLocaleString_i4x6(value: string | number, options?: Intl.NumberFormatOptions): string;
95
+ /**
96
+ * 使用程序运行的语言将Number转为特定格式的字符串
97
+ * @description 默认保留6位小数,补齐4位,显示千分位
98
+ */
99
+ toLocaleString_i4x6g(value: string | number, options?: Intl.NumberFormatOptions): string;
100
+ /**
101
+ * 使用程序运行的语言将Number转为特定格式的字符串
102
+ * @description 默认保留6位小数,补齐6位,不显示千分位
103
+ */
104
+ toLocaleString_i6x6(value: string | number, options?: Intl.NumberFormatOptions): string;
105
+ /**
106
+ * 使用程序运行的语言将Number转为特定格式的字符串
107
+ * @description 默认保留6位小数,补齐6位,显示千分位
108
+ */
109
+ toLocaleString_i6x6g(value: string | number, options?: Intl.NumberFormatOptions): string;
46
110
  };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("lodash-unified"),t={getUrlParams(e){const t=/[?&][^=?&]+=[^?&]+/g,r={};let o;for(;null!==(o=t.exec(e));){const[e,t]=o[0].substring(1).split("=");r[e]=decodeURIComponent(t)}return r},isJson:r=>!!e.isString(r)&&(r=r.replace(/\s/g,"").replace(/\n|\r/,""),/^\{.*?\}$/.test(r)?/".*?":/.test(r):!!/^\[.*?\]$/.test(r)&&r.replace(/^\[/,"").replace(/\]$/,"").replace(/\},\{/g,"}\n{").split(/\n/).map((e=>t.isJson(e))).reduce(((e,t)=>!!t))),splitCamelCase:e=>e?1===e.length?[e]:e.split(new RegExp("(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})","u")).filter((e=>e.length>0)):[],toCamelCase:e=>e?e.replace(/[-_](\w)/g,((e,t)=>t?t.toUpperCase():"")):"",firstCharToUpper:e=>e?e.charAt(0).toUpperCase()+e.slice(1):"",firstCharToLower:e=>e?e.charAt(0).toLowerCase()+e.slice(1):"",subStringWithEllipsis:(e,t,r="...")=>e?e.length>t?e.substring(0,t)+r:e:"",generateRandomString(e){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let r="";for(let o=0;o<e;o++){const e=Math.floor(62*Math.random());r+=t.charAt(e)}return r},generateUUID(){let e="";for(let t=0;t<32;t++){const r=16*Math.random()|0;8!==t&&12!==t&&16!==t&&20!==t||(e+="-"),e+=(12===t?4:16===t?3&r|8:r).toString(16)}return e},async copy(e){if("undefined"!=typeof uni)return new Promise(((t,r)=>{uni.setClipboardData({data:e,success:()=>{t()},fail:()=>{r()}})}));if((null==navigator?void 0:navigator.clipboard)&&window.isSecureContext)await navigator.clipboard.writeText(e);else{const t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.opacity="0",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("copy"),t.remove()}}};exports.stringUtil=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("lodash-unified");let t;const e={zh:"zh-CN",en:"en-US",zh_CN:"zh-CN",zh_TW:"zh-TW"},r={getUrlParams(i){const t=/[?&][^=?&]+=[^?&]+/g,e={};let r;for(;null!==(r=t.exec(i));){const[i,t]=r[0].substring(1).split("=");e[i]=decodeURIComponent(t)}return e},isJson:t=>!!i.isString(t)&&(t=t.replace(/\s/g,"").replace(/\n|\r/,""),/^\{.*?\}$/.test(t)?/".*?":/.test(t):!!/^\[.*?\]$/.test(t)&&t.replace(/^\[/,"").replace(/\]$/,"").replace(/\},\{/g,"}\n{").split(/\n/).map((i=>r.isJson(i))).reduce(((i,t)=>!!t))),splitCamelCase:i=>i?1===i.length?[i]:i.split(new RegExp("(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})","u")).filter((i=>i.length>0)):[],toCamelCase:i=>i?i.replace(/[-_](\w)/g,((i,t)=>t?t.toUpperCase():"")):"",firstCharToUpper:i=>i?i.charAt(0).toUpperCase()+i.slice(1):"",firstCharToLower:i=>i?i.charAt(0).toLowerCase()+i.slice(1):"",subStringWithEllipsis:(i,t,e="...")=>i?i.length>t?i.substring(0,t)+e:i:"",generateRandomString(i){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let e="";for(let r=0;r<i;r++){const i=Math.floor(62*Math.random());e+=t.charAt(i)}return e},generateUUID(){let i="";for(let t=0;t<32;t++){const e=16*Math.random()|0;8!==t&&12!==t&&16!==t&&20!==t||(i+="-"),i+=(12===t?4:16===t?3&e|8:e).toString(16)}return i},async copy(i){if("undefined"!=typeof uni)return new Promise(((t,e)=>{uni.setClipboardData({data:i,success:()=>{t()},fail:()=>{e()}})}));if((null==navigator?void 0:navigator.clipboard)&&window.isSecureContext)await navigator.clipboard.writeText(i);else{const t=document.createElement("textarea");t.value=i,t.style.position="absolute",t.style.opacity="0",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("copy"),t.remove()}},toLocaleString:(r,n)=>r&&i.isNumber(r)?"undefined"!=typeof uni?(t||(t=uni.getAppBaseInfo().language),r.toLocaleString(e[t]||"zh-CN",n)):r.toLocaleString(navigator.language||"zh-CN",n):r,toLocaleString_i2x2(t,e){return e=i.merge(e||{},{minimumFractionDigits:2,maximumFractionDigits:2,useGrouping:!1}),this.toLocaleString(t,e)},toLocaleString_i2x2g(t,e){return e=i.merge(e||{},{minimumFractionDigits:2,maximumFractionDigits:2,useGrouping:!0}),this.toLocaleString(t,e)},toLocaleString_i2x4(t,e){return e=i.merge(e||{},{minimumFractionDigits:2,maximumFractionDigits:4,useGrouping:!1}),this.toLocaleString(t,e)},toLocaleString_i2x4g(t,e){return e=i.merge(e||{},{minimumFractionDigits:2,maximumFractionDigits:4,useGrouping:!0}),this.toLocaleString(t,e)},toLocaleString_i2x6(t,e){return e=i.merge(e||{},{minimumFractionDigits:2,maximumFractionDigits:6,useGrouping:!1}),this.toLocaleString(t,e)},toLocaleString_i2x6g(t,e){return e=i.merge(e||{},{minimumFractionDigits:2,maximumFractionDigits:6,useGrouping:!0}),this.toLocaleString(t,e)},toLocaleString_i4x4(t,e){return e=i.merge(e||{},{minimumFractionDigits:4,maximumFractionDigits:4,useGrouping:!1}),this.toLocaleString(t,e)},toLocaleString_i4x4g(t,e){return e=i.merge(e||{},{minimumFractionDigits:4,maximumFractionDigits:4,useGrouping:!0}),this.toLocaleString(t,e)},toLocaleString_i4x6(t,e){return e=i.merge(e||{},{minimumFractionDigits:4,maximumFractionDigits:6,useGrouping:!1}),this.toLocaleString(t,e)},toLocaleString_i4x6g(t,e){return e=i.merge(e||{},{minimumFractionDigits:4,maximumFractionDigits:6,useGrouping:!0}),this.toLocaleString(t,e)},toLocaleString_i6x6(t,e){return e=i.merge(e||{},{minimumFractionDigits:6,maximumFractionDigits:6,useGrouping:!1}),this.toLocaleString(t,e)},toLocaleString_i6x6g(t,e){return e=i.merge(e||{},{minimumFractionDigits:6,maximumFractionDigits:6,useGrouping:!0}),this.toLocaleString(t,e)}};exports.stringUtil=r;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/string/index.ts"],"sourcesContent":["import { isString } from \"lodash-unified\";\n\n/**\n * 字符串工具类\n */\nexport const stringUtil = {\n\t/**\n\t * 获取Url参数\n\t */\n\tgetUrlParams(url: string): Record<string, any> {\n\t\tconst regex = /[?&][^=?&]+=[^?&]+/g;\n\t\tconst params: Record<string, any> = {};\n\n\t\tlet match;\n\t\twhile ((match = regex.exec(url)) !== null) {\n\t\t\tconst [key, value] = match[0].substring(1).split(\"=\");\n\t\t\tparams[key] = decodeURIComponent(value);\n\t\t}\n\n\t\treturn params;\n\t},\n\t/**\n\t * 是否为JSON字符串\n\t */\n\tisJson(value: string): boolean {\n\t\tif (!isString(value)) return false;\n\n\t\tvalue = value.replace(/\\s/g, \"\").replace(/\\n|\\r/, \"\");\n\n\t\tif (/^\\{.*?\\}$/.test(value)) return /\".*?\":/.test(value);\n\n\t\tif (/^\\[.*?\\]$/.test(value)) {\n\t\t\treturn value\n\t\t\t\t.replace(/^\\[/, \"\")\n\t\t\t\t.replace(/\\]$/, \"\")\n\t\t\t\t.replace(/\\},\\{/g, \"}\\n{\")\n\t\t\t\t.split(/\\n/)\n\t\t\t\t.map((s) => {\n\t\t\t\t\treturn stringUtil.isJson(s);\n\t\t\t\t})\n\t\t\t\t.reduce((prev, curr) => {\n\t\t\t\t\treturn !!curr;\n\t\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t},\n\t/**\n\t * 切割骆驼命名式字符串\n\t */\n\tsplitCamelCase(value: string): string[] {\n\t\tif (!value) return [];\n\n\t\tif (value.length === 1) return [value];\n\n\t\treturn value.split(/(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})/u).filter((token) => token.length > 0);\n\t},\n\t/**\n\t * 将字符串转为 camelCase 格式,支持 - 或 _ 分隔的字符串\n\t * 例如:'hello-world' 或 'hello_world' => 'helloWorld'\n\t */\n\ttoCamelCase(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.replace(/[-_](\\w)/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n\t},\n\t/**\n\t * 字符串首字母大写\n\t */\n\tfirstCharToUpper(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toUpperCase() + value.slice(1);\n\t},\n\t/**\n\t * 字符串首字母小写\n\t */\n\tfirstCharToLower(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toLowerCase() + value.slice(1);\n\t},\n\t/**\n\t * 截取指定长度的字符串\n\t */\n\tsubStringWithEllipsis(value: string, length: number, suffix = \"...\"): string {\n\t\tif (!value) return \"\";\n\t\treturn value.length > length ? value.substring(0, length) + suffix : value;\n\t},\n\t/**\n\t * 生成随机字符串\n\t */\n\tgenerateRandomString(length: number): string {\n\t\tconst characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\t\tlet randomString = \"\";\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\t\trandomString += characters.charAt(randomIndex);\n\t\t}\n\t\treturn randomString;\n\t},\n\t/**\n\t * @description 生成唯一 uuid\n\t */\n\tgenerateUUID(): string {\n\t\tlet uuid = \"\";\n\t\tfor (let i = 0; i < 32; i++) {\n\t\t\tconst random = (Math.random() * 16) | 0;\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) uuid += \"-\";\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n\t\t}\n\t\treturn uuid;\n\t},\n\t/**\n\t * 复制\n\t */\n\tasync copy(value: string): Promise<void> {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tuni.setClipboardData({\n\t\t\t\t\tdata: value,\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\tfail: () => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// navigator.clipboard 需要https等安全上下文\n\t\t\tif (navigator?.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(value);\n\t\t\t} else {\n\t\t\t\tconst textareaEl = document.createElement(\"textarea\");\n\t\t\t\ttextareaEl.value = value;\n\t\t\t\t// 使文本域不显示\n\t\t\t\ttextareaEl.style.position = \"absolute\";\n\t\t\t\ttextareaEl.style.opacity = \"0\";\n\t\t\t\ttextareaEl.style.left = \"-999999px\";\n\t\t\t\ttextareaEl.style.top = \"-999999px\";\n\t\t\t\tdocument.body.appendChild(textareaEl);\n\t\t\t\ttextareaEl.focus();\n\t\t\t\ttextareaEl.select();\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\ttextareaEl.remove();\n\t\t\t}\n\t\t}\n\t},\n};\n"],"names":["stringUtil","getUrlParams","url","regex","params","match","exec","key","value","substring","split","decodeURIComponent","isJson","isString","replace","test","map","s","reduce","prev","curr","splitCamelCase","length","RegExp","filter","token","toCamelCase","_","c","toUpperCase","firstCharToUpper","charAt","slice","firstCharToLower","toLowerCase","subStringWithEllipsis","suffix","generateRandomString","characters","randomString","i","randomIndex","Math","floor","random","generateUUID","uuid","toString","copy","uni","Promise","resolve","reject","setClipboardData","data","success","fail","navigator","clipboard","window","isSecureContext","writeText","textareaEl","document","createElement","style","position","opacity","left","top","body","appendChild","focus","select","execCommand","remove"],"mappings":"kHAKaA,EAAa,CAIzB,YAAAC,CAAaC,GACZ,MAAMC,EAAQ,sBACRC,EAA8B,CAAC,EAEjC,IAAAC,EACJ,KAAqC,QAA7BA,EAAQF,EAAMG,KAAKJ,KAAgB,CACpC,MAACK,EAAKC,GAASH,EAAM,GAAGI,UAAU,GAAGC,MAAM,KAC1CN,EAAAG,GAAOI,mBAAmBH,EAAK,CAGhC,OAAAJ,CACR,EAIAQ,OAAOJ,KACDK,EAAAA,SAASL,KAEdA,EAAQA,EAAMM,QAAQ,MAAO,IAAIA,QAAQ,QAAS,IAE9C,YAAYC,KAAKP,GAAe,SAASO,KAAKP,KAE9C,YAAYO,KAAKP,IACbA,EACLM,QAAQ,MAAO,IACfA,QAAQ,MAAO,IACfA,QAAQ,SAAU,QAClBJ,MAAM,MACNM,KAAKC,GACEjB,EAAWY,OAAOK,KAEzBC,QAAO,CAACC,EAAMC,MACLA,KASbC,eAAeb,GACTA,EAEgB,IAAjBA,EAAMc,OAAqB,CAACd,GAEzBA,EAAME,MAAM,IAAAa,OAAA,6CAAA,MAA2CC,QAAQC,GAAUA,EAAMH,OAAS,IAJ5E,GAUpBI,YAAYlB,GACNA,EACEA,EAAMM,QAAQ,aAAa,CAACa,EAAGC,IAAOA,EAAIA,EAAEC,cAAgB,KADhD,GAMpBC,iBAAiBtB,GACXA,EACEA,EAAMuB,OAAO,GAAGF,cAAgBrB,EAAMwB,MAAM,GADhC,GAMpBC,iBAAiBzB,GACXA,EACEA,EAAMuB,OAAO,GAAGG,cAAgB1B,EAAMwB,MAAM,GADhC,GAMpBG,sBAAsB,CAAA3B,EAAec,EAAgBc,EAAS,QACxD5B,EACEA,EAAMc,OAASA,EAASd,EAAMC,UAAU,EAAGa,GAAUc,EAAS5B,EADlD,GAMpB,oBAAA6B,CAAqBf,GACpB,MAAMgB,EAAa,iEACnB,IAAIC,EAAe,GACnB,IAAA,IAASC,EAAI,EAAGA,EAAIlB,EAAQkB,IAAK,CAChC,MAAMC,EAAcC,KAAKC,MAAsBL,GAAhBI,KAAKE,UACpBL,GAAAD,EAAWP,OAAOU,EAAW,CAEvC,OAAAF,CACR,EAIA,YAAAM,GACC,IAAIC,EAAO,GACX,IAAA,IAASN,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC5B,MAAMI,EAA0B,GAAhBF,KAAKE,SAAiB,EAC5B,IAANJ,GAAiB,KAANA,GAAkB,KAANA,GAAkB,KAANA,IAAkBM,GAAA,KAChDA,IAAM,KAANN,EAAW,EAAU,KAANA,EAAqB,EAATI,EAAc,EAAIA,GAAQG,SAAS,GAAE,CAEnE,OAAAD,CACR,EAIA,UAAME,CAAKxC,GACN,GAAe,oBAARyC,IACV,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAC5BH,IAAII,iBAAiB,CACpBC,KAAM9C,EACN+C,QAAS,KACAJ,GAAA,EAETK,KAAM,KACEJ,GAAA,GAER,IAIE,IAAA,MAAAK,eAAA,EAAAA,UAAWC,YAAaC,OAAOC,sBAC5BH,UAAUC,UAAUG,UAAUrD,OAC9B,CACA,MAAAsD,EAAaC,SAASC,cAAc,YAC1CF,EAAWtD,MAAQA,EAEnBsD,EAAWG,MAAMC,SAAW,WAC5BJ,EAAWG,MAAME,QAAU,IAC3BL,EAAWG,MAAMG,KAAO,YACxBN,EAAWG,MAAMI,IAAM,YACdN,SAAAO,KAAKC,YAAYT,GAC1BA,EAAWU,QACXV,EAAWW,SACXV,SAASW,YAAY,QACrBZ,EAAWa,QAAO,CAEpB"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/string/index.ts"],"sourcesContent":["import { isNumber, isString, merge } from \"lodash-unified\";\n\nlet language: string;\nconst languageMap = {\n\tzh: \"zh-CN\",\n\ten: \"en-US\",\n\tzh_CN: \"zh-CN\",\n\tzh_TW: \"zh-TW\",\n};\n\n/**\n * 字符串工具类\n */\nexport const stringUtil = {\n\t/**\n\t * 获取Url参数\n\t */\n\tgetUrlParams(url: string): Record<string, any> {\n\t\tconst regex = /[?&][^=?&]+=[^?&]+/g;\n\t\tconst params: Record<string, any> = {};\n\n\t\tlet match;\n\t\twhile ((match = regex.exec(url)) !== null) {\n\t\t\tconst [key, value] = match[0].substring(1).split(\"=\");\n\t\t\tparams[key] = decodeURIComponent(value);\n\t\t}\n\n\t\treturn params;\n\t},\n\t/**\n\t * 是否为JSON字符串\n\t */\n\tisJson(value: string): boolean {\n\t\tif (!isString(value)) return false;\n\n\t\tvalue = value.replace(/\\s/g, \"\").replace(/\\n|\\r/, \"\");\n\n\t\tif (/^\\{.*?\\}$/.test(value)) return /\".*?\":/.test(value);\n\n\t\tif (/^\\[.*?\\]$/.test(value)) {\n\t\t\treturn value\n\t\t\t\t.replace(/^\\[/, \"\")\n\t\t\t\t.replace(/\\]$/, \"\")\n\t\t\t\t.replace(/\\},\\{/g, \"}\\n{\")\n\t\t\t\t.split(/\\n/)\n\t\t\t\t.map((s) => {\n\t\t\t\t\treturn stringUtil.isJson(s);\n\t\t\t\t})\n\t\t\t\t.reduce((prev, curr) => {\n\t\t\t\t\treturn !!curr;\n\t\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t},\n\t/**\n\t * 切割骆驼命名式字符串\n\t */\n\tsplitCamelCase(value: string): string[] {\n\t\tif (!value) return [];\n\n\t\tif (value.length === 1) return [value];\n\n\t\treturn value.split(/(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})/u).filter((token) => token.length > 0);\n\t},\n\t/**\n\t * 将字符串转为 camelCase 格式,支持 - 或 _ 分隔的字符串\n\t * 例如:'hello-world' 或 'hello_world' => 'helloWorld'\n\t */\n\ttoCamelCase(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.replace(/[-_](\\w)/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n\t},\n\t/**\n\t * 字符串首字母大写\n\t */\n\tfirstCharToUpper(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toUpperCase() + value.slice(1);\n\t},\n\t/**\n\t * 字符串首字母小写\n\t */\n\tfirstCharToLower(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toLowerCase() + value.slice(1);\n\t},\n\t/**\n\t * 截取指定长度的字符串\n\t */\n\tsubStringWithEllipsis(value: string, length: number, suffix = \"...\"): string {\n\t\tif (!value) return \"\";\n\t\treturn value.length > length ? value.substring(0, length) + suffix : value;\n\t},\n\t/**\n\t * 生成随机字符串\n\t */\n\tgenerateRandomString(length: number): string {\n\t\tconst characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\t\tlet randomString = \"\";\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\t\trandomString += characters.charAt(randomIndex);\n\t\t}\n\t\treturn randomString;\n\t},\n\t/**\n\t * @description 生成唯一 uuid\n\t */\n\tgenerateUUID(): string {\n\t\tlet uuid = \"\";\n\t\tfor (let i = 0; i < 32; i++) {\n\t\t\tconst random = (Math.random() * 16) | 0;\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) uuid += \"-\";\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n\t\t}\n\t\treturn uuid;\n\t},\n\t/**\n\t * 复制\n\t */\n\tasync copy(value: string): Promise<void> {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tuni.setClipboardData({\n\t\t\t\t\tdata: value,\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\tfail: () => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// navigator.clipboard 需要https等安全上下文\n\t\t\tif (navigator?.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(value);\n\t\t\t} else {\n\t\t\t\tconst textareaEl = document.createElement(\"textarea\");\n\t\t\t\ttextareaEl.value = value;\n\t\t\t\t// 使文本域不显示\n\t\t\t\ttextareaEl.style.position = \"absolute\";\n\t\t\t\ttextareaEl.style.opacity = \"0\";\n\t\t\t\ttextareaEl.style.left = \"-999999px\";\n\t\t\t\ttextareaEl.style.top = \"-999999px\";\n\t\t\t\tdocument.body.appendChild(textareaEl);\n\t\t\t\ttextareaEl.focus();\n\t\t\t\ttextareaEl.select();\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\ttextareaEl.remove();\n\t\t\t}\n\t\t}\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t */\n\ttoLocaleString(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\tif (value) {\n\t\t\tif (isNumber(value)) {\n\t\t\t\tif (typeof uni !== \"undefined\") {\n\t\t\t\t\tif (!language) {\n\t\t\t\t\t\tlanguage = uni.getAppBaseInfo().language;\n\t\t\t\t\t}\n\t\t\t\t\treturn value.toLocaleString(languageMap[language] || \"zh-CN\", options);\n\t\t\t\t} else {\n\t\t\t\t\treturn value.toLocaleString(navigator.language || \"zh-CN\", options);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn value as string;\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留2位小数,补齐2位,不显示千分位\n\t */\n\ttoLocaleString_i2x2(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 2,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留2位小数,补齐2位,显示千分位\n\t */\n\ttoLocaleString_i2x2g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 2,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐2位,不显示千分位\n\t */\n\ttoLocaleString_i2x4(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐2位,显示千分位\n\t */\n\ttoLocaleString_i2x4g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐2位,不显示千分位\n\t */\n\ttoLocaleString_i2x6(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐2位,显示千分位\n\t */\n\ttoLocaleString_i2x6g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐4位,不显示千分位\n\t */\n\ttoLocaleString_i4x4(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐4位,显示千分位\n\t */\n\ttoLocaleString_i4x4g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐4位,不显示千分位\n\t */\n\ttoLocaleString_i4x6(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐4位,显示千分位\n\t */\n\ttoLocaleString_i4x6g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐6位,不显示千分位\n\t */\n\ttoLocaleString_i6x6(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 6,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐6位,显示千分位\n\t */\n\ttoLocaleString_i6x6g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 6,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n};\n"],"names":["language","languageMap","zh","en","zh_CN","zh_TW","stringUtil","getUrlParams","url","regex","params","match","exec","key","value","substring","split","decodeURIComponent","isJson","isString","replace","test","map","s","reduce","prev","curr","splitCamelCase","length","RegExp","filter","token","toCamelCase","_","c","toUpperCase","firstCharToUpper","charAt","slice","firstCharToLower","toLowerCase","subStringWithEllipsis","suffix","generateRandomString","characters","randomString","i","randomIndex","Math","floor","random","generateUUID","uuid","toString","copy","uni","Promise","resolve","reject","setClipboardData","data","success","fail","navigator","clipboard","window","isSecureContext","writeText","textareaEl","document","createElement","style","position","opacity","left","top","body","appendChild","focus","select","execCommand","remove","toLocaleString","options","isNumber","getAppBaseInfo","toLocaleString_i2x2","merge","minimumFractionDigits","maximumFractionDigits","useGrouping","this","toLocaleString_i2x2g","toLocaleString_i2x4","toLocaleString_i2x4g","toLocaleString_i2x6","toLocaleString_i2x6g","toLocaleString_i4x4","toLocaleString_i4x4g","toLocaleString_i4x6","toLocaleString_i4x6g","toLocaleString_i6x6","toLocaleString_i6x6g"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fast-china/utils",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "Fast 工具库.",
5
5
  "type": "module",
6
6
  "keywords": [