mingyang_text 2022.10.27 → 2023.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/text.js +54 -34
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mingyang_text",
3
- "version": "2022.10.27",
3
+ "version": "2023.02.01",
4
4
  "description": "MingYang Packet",
5
5
  "main": "text.js",
6
6
  "scripts": {
package/text.js CHANGED
@@ -1,17 +1,20 @@
1
1
 
2
2
  /**
3
3
  * 对【数字】或【字符】进行【左侧补齐】操作
4
- * @param {"数字或字符"} args_Input
5
- * @param {"目标长度"} args_Length
6
- * @param {"占位符"} args_PlaceHolder
4
+ * @param {"数字或字符"} args_Input
5
+ * @param {"目标长度"} args_Length
6
+ * @param {"占位符"} args_PlaceHolder
7
7
  */
8
8
  function func_StringFormat(args_Input, args_Length, args_PlaceHolder) {
9
- if (args_Input.toString().length > args_Length) {
10
- return args_Input.toString();
11
- }
12
- else {
13
- return (Array(args_Length).join(args_PlaceHolder) + args_Input).slice(-args_Length);
9
+ let temp_TXT = args_Input.toString();
10
+ if (args_Length > temp_TXT.length) {
11
+ let temp_Fil = args_PlaceHolder.toString();
12
+ let temp_Len = args_Length - temp_TXT.length;
13
+ for (let i = 0; i < temp_Len; i++) {
14
+ temp_TXT = temp_Fil + temp_TXT;
15
+ }
14
16
  }
17
+ return temp_TXT;
15
18
  }
16
19
  module.exports.do_StringFormat = func_StringFormat;
17
20
 
@@ -21,8 +24,8 @@ module.exports.do_StringFormat = func_StringFormat;
21
24
 
22
25
  /**
23
26
  * 生成随机数
24
- * @param {"最小值,随机数可以选中最小值"} args_Min
25
- * @param {"最大值,随机数不会选中最大值"} args_Max
27
+ * @param {"最小值,随机数可以选中最小值"} args_Min
28
+ * @param {"最大值,随机数不会选中最大值"} args_Max
26
29
  */
27
30
  function func_Random(args_Min, args_Max) {
28
31
  let temp_Val = Math.floor(Math.random() * (args_Max - args_Min)) + args_Min;
@@ -37,7 +40,7 @@ module.exports.do_Random = func_Random;
37
40
 
38
41
  /**
39
42
  * 格式化时间
40
- * @param {"时间对象,如果传入空,那么将使用当前时间"} args_Date
43
+ * @param {"时间对象,如果传入空,那么将使用当前时间"} args_Date
41
44
  * @param {"时间格式,例如【yyyy-MM-dd HH:mm:ss.fff】【yyyyMMddHHmmssfff】"} args_Format
42
45
  */
43
46
  function func_DateTimeToString(args_Date, args_Format) {
@@ -75,9 +78,9 @@ module.exports.do_DateTimeToString = func_DateTimeToString;
75
78
 
76
79
  /**
77
80
  * 根据给定的左右标签,提取父串中的子串
78
- * @param {"输入文本"} args_Text
79
- * @param {"左侧标记"} args_Bin
80
- * @param {"右侧标记"} args_End
81
+ * @param {"输入文本"} args_Text
82
+ * @param {"左侧标记"} args_Bin
83
+ * @param {"右侧标记"} args_End
81
84
  */
82
85
  function func_Filter(args_Text, args_Bin, args_End) {
83
86
 
@@ -201,7 +204,7 @@ module.exports.do_TimeID = func_TimeID;
201
204
 
202
205
  /**
203
206
  * 从【16进制文本】转换为【普通文本】
204
- * @param {"16进制文本"} args_Hex
207
+ * @param {"16进制文本"} args_Hex
205
208
  */
206
209
  function func_Hex_goto_Plain(args_Hex) {
207
210
  let t_Buffer = Buffer.from(args_Hex, 'hex');
@@ -211,7 +214,7 @@ module.exports.do_Hex_goto_Plain = func_Hex_goto_Plain;
211
214
 
212
215
  /**
213
216
  * 从【普通文本】转换为【16进制文本】
214
- * @param {"普通文本"} args_Hex
217
+ * @param {"普通文本"} args_Hex
215
218
  */
216
219
  function func_Hex_from_Plain(args_Plain) {
217
220
  let t_Buffer = Buffer.from(args_Plain, "utf8");
@@ -225,8 +228,8 @@ module.exports.do_Hex_from_Plain = func_Hex_from_Plain;
225
228
 
226
229
  /**
227
230
  * 【主字符串】是否以【从字符串】开头
228
- * @param {"主字符串"} args_Subject
229
- * @param {"从字符串"} args_Compare
231
+ * @param {"主字符串"} args_Subject
232
+ * @param {"从字符串"} args_Compare
230
233
  */
231
234
  function func_Bin_With(args_Subject, args_Compare) {
232
235
  if (args_Subject == null || args_Compare == null) {
@@ -247,8 +250,8 @@ module.exports.do_Bin_With = func_Bin_With;
247
250
 
248
251
  /**
249
252
  * 【主字符串】是否以【从字符串】结尾
250
- * @param {"主字符串"} args_Subject
251
- * @param {"从字符串"} args_Compare
253
+ * @param {"主字符串"} args_Subject
254
+ * @param {"从字符串"} args_Compare
252
255
  */
253
256
  function func_End_With(args_Subject, args_Compare) {
254
257
  if (args_Subject == null || args_Compare == null) {
@@ -274,9 +277,9 @@ module.exports.do_End_With = func_End_With;
274
277
 
275
278
  /**
276
279
  * KeyValue解码
277
- * @param {"源字符串"} args_Plain
278
- * @param {"分割字符"} args_Split
279
- * @param {"等于字符"} args_Equal
280
+ * @param {"源字符串"} args_Plain
281
+ * @param {"分割字符"} args_Split
282
+ * @param {"等于字符"} args_Equal
280
283
  */
281
284
  function func_KeyValue_Decode(args_Plain, args_Split, args_Equal) {
282
285
 
@@ -299,9 +302,9 @@ module.exports.do_KeyValue_Decode = func_KeyValue_Decode;
299
302
 
300
303
  /**
301
304
  * KeyValue编码
302
- * @param {"源数据包"} args_Datas
303
- * @param {"分割字符"} args_Split
304
- * @param {"等于字符"} args_Equal
305
+ * @param {"源数据包"} args_Datas
306
+ * @param {"分割字符"} args_Split
307
+ * @param {"等于字符"} args_Equal
305
308
  */
306
309
  function func_KeyValue_Encode(args_Datas, args_Split, args_Equal) {
307
310
 
@@ -330,9 +333,9 @@ module.exports.do_KeyValue_Encode = func_KeyValue_Encode;
330
333
 
331
334
  /**
332
335
  * 【十进制数字】转成【它进制数字】
333
- * @param {"来源十进制数,例如:110715"} args_DecimalNumber
334
- * @param {"目标进制基数,例如:62"} args_NumberSystem
335
- * @param {"目标记号字符,例如:0123456789ABCDEF"} args_VisibleChar
336
+ * @param {"来源十进制数,例如:110715"} args_DecimalNumber
337
+ * @param {"目标进制基数,例如:62"} args_NumberSystem
338
+ * @param {"目标记号字符,例如:0123456789ABCDEF"} args_VisibleChar
336
339
  */
337
340
  function func_DecimalToOther(args_DecimalNumber, args_NumberSystem, args_VisibleChar = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") {
338
341
 
@@ -362,9 +365,9 @@ module.exports.do_DecimalToOther = func_DecimalToOther;
362
365
 
363
366
  /**
364
367
  * 【它进制数字】转成【十进制数字】
365
- * @param {"来源进制数值,例如:TO80HHL"} args_OtherNumber
366
- * @param {"来源进制基数,例如:62"} args_NumberSystem
367
- * @param {"来源记号字符,例如:0123456789ABCDEF"} args_VisibleChar
368
+ * @param {"来源进制数值,例如:TO80HHL"} args_OtherNumber
369
+ * @param {"来源进制基数,例如:62"} args_NumberSystem
370
+ * @param {"来源记号字符,例如:0123456789ABCDEF"} args_VisibleChar
368
371
  */
369
372
  function func_DecimalFromOther(args_OtherNumber, args_NumberSystem, args_VisibleChar = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") {
370
373
 
@@ -400,7 +403,7 @@ module.exports.do_DecimalFromOther = func_DecimalFromOther;
400
403
 
401
404
  /**
402
405
  * 【10进制数字】转成【62进制数字】
403
- * @param {"10进制数"} args_Base10Number
406
+ * @param {"10进制数"} args_Base10Number
404
407
  */
405
408
  function func_Base62Encode(args_Base10Number) {
406
409
  return func_DecimalToOther(args_Base10Number, 62);
@@ -409,9 +412,26 @@ module.exports.do_Base62Encode = func_Base62Encode;
409
412
 
410
413
  /**
411
414
  * 【62进制数字】转成【10进制数字】
412
- * @param {"62进制数"} args_Base62Number
415
+ * @param {"62进制数"} args_Base62Number
413
416
  */
414
417
  function func_Base62Decode(args_Base62Number) {
415
418
  return func_DecimalFromOther(args_Base62Number, 62);
416
419
  }
417
420
  module.exports.do_Base62Decode = func_Base62Decode;
421
+
422
+
423
+ /**
424
+ * 按照字节长度截取字符串
425
+ * @param {"原始字符"} args_InputString
426
+ * @param {"目标长度"} args_ByteLength
427
+ * @param {"编码方式"} args_Encoding
428
+ */
429
+ module.exports.do_Byte_Truncate = (args_InputString, args_ByteLength, args_Encoding = "utf8") => {
430
+ let temp_Description = args_InputString.substring(0, args_ByteLength);
431
+ let temp_Buffer = Buffer.from(temp_Description, args_Encoding);
432
+ while (temp_Buffer.length > args_ByteLength) {
433
+ temp_Description = temp_Description.substring(0, temp_Description.length - 1);
434
+ temp_Buffer = Buffer.from(temp_Description, args_Encoding);
435
+ }
436
+ return temp_Description;
437
+ }