@fast-china/utils 1.0.15 → 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.
@@ -39,12 +39,72 @@ export declare const stringUtil: {
39
39
  * @description 生成唯一 uuid
40
40
  */
41
41
  generateUUID(): string;
42
+ /**
43
+ * 复制
44
+ */
45
+ copy(value: string): Promise<void>;
42
46
  /**
43
47
  * 使用程序运行的语言将Number转为特定格式的字符串
44
48
  */
45
49
  toLocaleString(value: string | number, options?: Intl.NumberFormatOptions): string;
46
50
  /**
47
- * 复制
51
+ * 使用程序运行的语言将Number转为特定格式的字符串
52
+ * @description 默认保留2位小数,补齐2位,不显示千分位
48
53
  */
49
- copy(value: string): Promise<void>;
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;
50
110
  };
@@ -1,4 +1,4 @@
1
- import { isNumber, isString } from "lodash-unified";
1
+ import { merge, isNumber, isString } from "lodash-unified";
2
2
  let language;
3
3
  const languageMap = {
4
4
  zh: "zh-CN",
@@ -97,24 +97,6 @@ const stringUtil = {
97
97
  }
98
98
  return uuid;
99
99
  },
100
- /**
101
- * 使用程序运行的语言将Number转为特定格式的字符串
102
- */
103
- toLocaleString(value, options) {
104
- if (value) {
105
- if (isNumber(value)) {
106
- if (typeof uni !== "undefined") {
107
- if (!language) {
108
- language = uni.getAppBaseInfo().language;
109
- }
110
- return value.toLocaleString(languageMap[language] || "zh-CN", options);
111
- } else {
112
- return value.toLocaleString(navigator.language || "zh-CN", options);
113
- }
114
- }
115
- }
116
- return value;
117
- },
118
100
  /**
119
101
  * 复制
120
102
  */
@@ -148,6 +130,168 @@ const stringUtil = {
148
130
  textareaEl.remove();
149
131
  }
150
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);
151
295
  }
152
296
  };
153
297
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/string/index.ts"],"sourcesContent":["import { isNumber, isString } 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 * 使用程序运行的语言将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 * 复制\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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"}
@@ -39,12 +39,72 @@ export declare const stringUtil: {
39
39
  * @description 生成唯一 uuid
40
40
  */
41
41
  generateUUID(): string;
42
+ /**
43
+ * 复制
44
+ */
45
+ copy(value: string): Promise<void>;
42
46
  /**
43
47
  * 使用程序运行的语言将Number转为特定格式的字符串
44
48
  */
45
49
  toLocaleString(value: string | number, options?: Intl.NumberFormatOptions): string;
46
50
  /**
47
- * 复制
51
+ * 使用程序运行的语言将Number转为特定格式的字符串
52
+ * @description 默认保留2位小数,补齐2位,不显示千分位
48
53
  */
49
- copy(value: string): Promise<void>;
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;
50
110
  };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("lodash-unified");let t;const n={zh:"zh-CN",en:"en-US",zh_CN:"zh-CN",zh_TW:"zh-TW"},o={getUrlParams(e){const t=/[?&][^=?&]+=[^?&]+/g,n={};let o;for(;null!==(o=t.exec(e));){const[e,t]=o[0].substring(1).split("=");n[e]=decodeURIComponent(t)}return n},isJson:t=>!!e.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((e=>o.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,n="...")=>e?e.length>t?e.substring(0,t)+n:e:"",generateRandomString(e){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let n="";for(let o=0;o<e;o++){const e=Math.floor(62*Math.random());n+=t.charAt(e)}return n},generateUUID(){let e="";for(let t=0;t<32;t++){const n=16*Math.random()|0;8!==t&&12!==t&&16!==t&&20!==t||(e+="-"),e+=(12===t?4:16===t?3&n|8:n).toString(16)}return e},toLocaleString:(o,r)=>o&&e.isNumber(o)?"undefined"!=typeof uni?(t||(t=uni.getAppBaseInfo().language),o.toLocaleString(n[t]||"zh-CN",r)):o.toLocaleString(navigator.language||"zh-CN",r):o,async copy(e){if("undefined"!=typeof uni)return new Promise(((t,n)=>{uni.setClipboardData({data:e,success:()=>{t()},fail:()=>{n()}})}));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=o;
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 { isNumber, isString } 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 * 使用程序运行的语言将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 * 复制\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":["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","toLocaleString","options","isNumber","uni","getAppBaseInfo","navigator","copy","Promise","resolve","reject","setClipboardData","data","success","fail","clipboard","window","isSecureContext","writeText","textareaEl","document","createElement","style","position","opacity","left","top","body","appendChild","focus","select","execCommand","remove"],"mappings":"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"}
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.15",
3
+ "version": "1.0.16",
4
4
  "description": "Fast 工具库.",
5
5
  "type": "module",
6
6
  "keywords": [