StringUtil.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /** 字符串工具类 */
  2. const StringUtil = {
  3. /**
  4. * 随机生成一个中文字符串
  5. * @param {number} length 要生成的字符串长度
  6. * @returns {string} 随机中文字符串
  7. */
  8. randomChineseString(length) {
  9. const characters = "丰王井开夫天无元专云扎艺木不太犬区历尤友匹车巨牙屯比互切瓦少日中冈贝内水见午毛气升长仁什片仆化仇币仍斤爪反介父从今凶分乏公仓月氏勿欠风丹匀乌凤勾文六方火为忆订计户认心尺引丑巴孔队办以允劝双书幻";
  10. let result = '';
  11. for (let i = 0; i < length; i++) {
  12. result += characters.charAt(Math.floor(Math.random() * characters.length));
  13. }
  14. //console.log("randomChineseString result:", result)
  15. return result;
  16. },
  17. /**
  18. * 将字符串按照指定的分隔符进行分割,并将分隔符也包含在结果数组中
  19. * @param {string} str - 要分割的原始字符串
  20. * @param {string} separator - 用于分割字符串的分隔符
  21. * @returns {Array<string>} 包含分割后的字符串片段和分隔符的数组
  22. *
  23. * @example
  24. * // 基本用法
  25. * StringUtil.splitStringIncludeSeparator("hello,world,test", ",")
  26. * // 返回: ["hello", ",", "world", ",", "test"]
  27. *
  28. * // 包含连续分隔符的情况
  29. * StringUtil.splitStringIncludeSeparator("a,,b", ",")
  30. * // 返回: ["a", ",", "", ",", "b"]
  31. *
  32. * // 分隔符在开头或结尾
  33. * StringUtil.splitStringIncludeSeparator(",hello", ",")
  34. * // 返回: ["", ",", "hello"]
  35. *
  36. * // 多字符分隔符
  37. * StringUtil.splitStringIncludeSeparator("a::b::c", "::")
  38. * // 返回: ["a", "::", "b", "::", "c"]
  39. *
  40. * // 不包含分隔符的字符串
  41. * StringUtil.splitStringIncludeSeparator("hello", ",")
  42. * // 返回: [] (空数组)
  43. */
  44. splitStringIncludeSeparator(str, separator) {
  45. //console.log("splitStringIncludeSeparator str:", str, "separator:", separator)
  46. let arr = [];
  47. if (str.includes(separator)) {
  48. while (true) {
  49. let n = str.indexOf(separator);
  50. if (n != -1) {
  51. let firstStr = str.substring(0, n);
  52. let separatorStr = str.substring(n, n + separator.length);
  53. str = str.substring(n + separator.length);
  54. if (firstStr.length > 0)
  55. arr.push(firstStr);
  56. if (separatorStr.length > 0)
  57. arr.push(separatorStr);
  58. } else {
  59. if (str.length > 0)
  60. arr.push(str);
  61. break;
  62. }
  63. }
  64. }
  65. return arr;
  66. }
  67. };
  68. // 导出工具类,供其他文件导入使用
  69. module.exports = { StringUtil };//使用 CommonJS 模块导出方式