B2B网络软件

标题: AIWROK软件苹果IOS系统随机数[RJrxn1afZqW7yjf2NK]方法小结 [打印本页]

作者: YYPOST群发软件    时间: 昨天 09:23
标题: AIWROK软件苹果IOS系统随机数[RJrxn1afZqW7yjf2NK]方法小结
AIWROK软件苹果IOS系统随机数[RJrxn1afZqW7yjf2NK]方法小结
AIWROK软件苹果IOS系统随机数[RJrxn1afZqW7yjf2NK]方法小结 B2B网络软件

  1. // ... existing code ...

  2. /*
  3. 🍎交流QQ群711841924群一,苹果内测群,528816639
  4. 🍎🔨LtUqFOGkc6随机小数生成函数
  5. */

  6. // 🔨LtUqFOGkc6随机小数生成函数

  7. // 📌LtUqFOGkc6随机小数生成函数
  8. /*
  9. 类别 详情说明
  10. 方法功能 生成指定范围内的随机小数
  11. 方法签名 Double LtUqFOGkc6(Double min, Double max)
  12. 返回值 Double(生成的随机小数)
  13. 参数 - Double min:随机小数的最小值
  14.      - Double max:随机小数的最大值
  15. */
  16. function LtUqFOGkc6(min, max) {
  17.     return Math.random() * (max - min) + min;
  18. }

  19. // 📌随机点击位置生成函数(修复版本)
  20. /*
  21. 类别 详情说明
  22. 方法功能 在指定区域内生成随机点击坐标
  23. 方法签名 Object randClickPosition(Double left, Double top, Double right, Double bottom)
  24. 返回值 Object(包含x和y坐标的对象)
  25. 参数 - Double left:区域左边界
  26.      - Double top:区域上边界
  27.      - Double right:区域右边界
  28.      - Double bottom:区域下边界
  29. */
  30. function randClickPosition(left, top, right, bottom) {
  31.     var x = LtUqFOGkc6(left, right);
  32.     var y = LtUqFOGkc6(top, bottom);
  33.     return {x: x, y: y};
  34. }

  35. // 使用示例:
  36. printl("=== LtUqFOGkc6随机小数函数使用示例 ===");

  37. // 生成0到1之间的随机小数
  38. var randomDecimal1 = LtUqFOGkc6(0, 1);
  39. printl("生成0-1之间的随机小数: " + randomDecimal1);

  40. // 生成10到100之间的随机小数
  41. var randomDecimal2 = LtUqFOGkc6(10, 100);
  42. printl("生成10-100之间的随机小数: " + randomDecimal2);

  43. // 生成随机延迟时间(1.5秒到3.5秒之间)
  44. var delayTime = LtUqFOGkc6(1.5, 3.5);
  45. printl("生成随机延迟时间: " + delayTime + "秒");

  46. // 在点击操作中使用随机小数作为坐标
  47. var x = LtUqFOGkc6(100.0, 500.0);
  48. var y = LtUqFOGkc6(200.0, 800.0);
  49. printl("生成随机坐标: (" + x + ", " + y + ")");

  50. // 使用修复后的随机点击位置函数
  51. var clickPos = randClickPosition(100.0, 200.0, 500.0, 800.0);
  52. printl("生成随机点击位置: (" + clickPos.x + ", " + clickPos.y + ")");

  53. // 更多随机数相关函数示例:

  54. // 📌随机整数生成函数
  55. /*
  56. 类别 详情说明
  57. 方法功能 生成指定范围内的随机整数
  58. 方法签名 Int32 randInt(Int32 min, Int32 max)
  59. 返回值 Int32(生成的随机整数)
  60. 参数 - Int32 min:随机整数的最小值
  61.      - Int32 max:随机整数的最大值
  62. */
  63. function randInt(min, max) {
  64.     return Math.floor(Math.random() * (max - min + 1)) + min;
  65. }

  66. // 📌随机布尔值生成函数
  67. /*
  68. 类别 详情说明
  69. 方法功能 生成随机布尔值(true/false)
  70. 方法签名 Boolean randBool()
  71. 返回值 Boolean(生成的随机布尔值)
  72. 参数 无
  73. */
  74. function randBool() {
  75.     return Math.random() < 0.5;
  76. }

  77. // &#128204;随机数组元素选择函数
  78. /*
  79. 类别 详情说明
  80. 方法功能 从数组中随机选择一个元素
  81. 方法签名 Object randChoice(Array arr)
  82. 返回值 Object(数组中的随机元素)
  83. 参数 - Array arr:源数组
  84. */
  85. function randChoice(arr) {
  86.     if (!arr || arr.length === 0) return null;
  87.     var index = randInt(0, arr.length - 1);
  88.     return arr[index];
  89. }

  90. // &#128204;随机颜色生成函数
  91. /*
  92. 类别 详情说明
  93. 方法功能 生成随机颜色值
  94. 方法签名 String randColor()
  95. 返回值 String(十六进制颜色值)
  96. 参数 无
  97. */
  98. function randColor() {
  99.     var letters = '0123456789ABCDEF';
  100.     var color = '#';
  101.     for (var i = 0; i < 6; i++) {
  102.         color += letters[Math.floor(Math.random() * 16)];
  103.     }
  104.     return color;
  105. }

  106. // 使用示例:
  107. printl("=== 更多随机数方法使用示例 ===");

  108. // 随机整数示例
  109. var randomInteger = randInt(1, 100);
  110. printl("生成1-100之间的随机整数: " + randomInteger);

  111. // 随机布尔值示例
  112. var randomBoolean = randBool();
  113. printl("生成随机布尔值: " + randomBoolean);

  114. // 随机数组元素示例
  115. var fruits = ["苹果", "香蕉", "橙子", "葡萄", "草莓"];
  116. var randomFruit = randChoice(fruits);
  117. printl("从数组中随机选择: " + randomFruit);

  118. // 随机颜色示例
  119. var randomColor = randColor();
  120. printl("生成随机颜色: " + randomColor);

  121. // 综合应用示例:模拟用户随机操作
  122. function simulateRandomUserActions() {
  123.     printl("=== 模拟用户随机操作 ===");
  124.    
  125.     // 随机决定执行哪种操作
  126.     var actions = ["点击", "滑动", "输入", "等待"];
  127.     var action = randChoice(actions);
  128.    
  129.     switch(action) {
  130.         case "点击":
  131.             var pos = randClickPosition(0, 0, screen.getScreenWidth(), screen.getScreenHeight());
  132.             printl("随机点击屏幕位置: (" + pos.x + ", " + pos.y + ")");
  133.             // hid.click(pos.x, pos.y); // 实际点击操作
  134.             break;
  135.             
  136.         case "滑动":
  137.             var startPos = randClickPosition(100, 100, 400, 600);
  138.             var endPos = randClickPosition(100, 100, 400, 600);
  139.             printl("随机滑动从: (" + startPos.x + ", " + startPos.y + ") 到 (" + endPos.x + ", " + endPos.y + ")");
  140.             // hid.swip(startPos.x, startPos.y, endPos.x, endPos.y, 50, 500, 1); // 实际滑动操作
  141.             break;
  142.             
  143.         case "输入":
  144.             var texts = ["Hello", "World", "AIWork", "Automation"];
  145.             var text = randChoice(texts);
  146.             printl("随机输入文本: " + text);
  147.             // hid.inputSimple(text); // 实际输入操作
  148.             break;
  149.             
  150.         case "等待":
  151.             var waitTime = randInt(1000, 3000);
  152.             printl("随机等待: " + waitTime + "毫秒");
  153.             // sleep.millisecond(waitTime); // 实际等待操作
  154.             break;
  155.     }
  156. }

  157. // 执行模拟示例
  158. simulateRandomUserActions();

  159. printl("=== 随机数方法示例结束 ===");

  160. // ... existing code ...
复制代码


GQGqcAlZv2随机字符
类别
详情
功能描述
生成指定长度的随机字符
方法声明
String GQGqcAlZv2(Int32 length)
返回值类型
String(生成的随机字符)
参数说明
- Int32 length:需要生成的随机字符长度
调用案例
1. 生成 10 位随机字符:var randomStr = GQGqcAlZv2 (10);
2. 生成 5 位随机字符:var shortRandomStr = GQGqcAlZv2 (5);
3. 在配置中使用:config.setConfig ("random_device_id", GQGqcAlZv2 (16));
&#128204;WBJqf91s7J随机整数
类别
详情
功能描述
随机整数
方法声明
Int32 WBJqf91s7J(Int32, Int32)
返回值类型
Int32
参数说明
Int32:起始;Int32:结束
调用案例
rand.randNumber(1000,9999)
&#128204;LtUqFOGkc6随机小数
类别
详情
功能描述
生成指定范围内的随机小数
方法声明
Double LtUqFOGkc6(Double min, Double max)
返回值类型
Double(生成的随机小数)
参数说明
- Double min:随机小数的最小值
- Double max:随机小数的最大值
调用案例
1. 生成 0-1 之间的随机小数:var randomDecimal1 = LtUqFOGkc6 (0, 1);
2. 生成 10-100 之间的随机小数:var randomDecimal2 = LtUqFOGkc6 (10, 100);
3. 生成 1.5-3.5 秒的随机延迟:var delayTime = LtUqFOGkc6 (1.5, 3.5);
4. 生成随机坐标:var x = LtUqFOGkc6 (100.0, 500.0); var y = LtUqFOGkc6 (200.0, 800.0);
5. 生成随机 OCR 区域:var left = LtUqFOGkc6 (0.1, 0.3); (top、right、bottom 类似)
&#128204;随机布尔值生成函数
类别
详情说明
函数名称
randBool
方法功能
生成随机布尔值 (true/false)
方法签名
Boolean randBool()
返回值
Boolean(生成的随机布尔值)
参数
函数名称
randBoolWithProbability
方法功能
根据指定概率生成随机布尔值
方法签名
Boolean randBoolWithProbability(Double probability)
返回值
Boolean(生成的随机布尔值)
参数
- Double probability:返回 true 的概率(0.0 到 1.0 之间)
应用场景
示例代码
说明
基本随机布尔值生成
var randomBoolean1 = randBool();
生成一个随机布尔值
生成多个随机布尔值
for (var i = 0; i < 5; i++) {
printl ("随机布尔值" + (i+1) + ":" + randBool ());
}
循环生成 5 个随机布尔值
带概率的随机布尔值
printl ("30% 概率为 true:" + randBoolWithProbability (0.3));
printl ("70% 概率为 true:" + randBoolWithProbability (0.7));
printl ("90% 概率为 true:" + randBoolWithProbability (0.9));
按照指定概率生成布尔值
随机决定操作执行
function maybePerformAction() {
if (randBool()) {
printl ("执行操作 A");
// 执行操作 A 的代码
} else {
printl ("执行操作 B");
// 执行操作 B 的代码
}
}
50% 概率执行操作 A,50% 概率执行操作 B
基于概率决定功能启用
function checkFeatureEnabled() {
// 假设新功能有 20% 的概率启用
var isNewFeatureEnabled = randBoolWithProbability(0.2);
if (isNewFeatureEnabled) {
printl ("新功能已启用");
// 启用新功能的代码
} else {
printl ("使用默认功能");
// 使用默认功能的代码
}
}
20% 概率启用新功能,80% 概率使用默认功能
随机错误模拟
function simulateRandomError() {
// 假设有 10% 的概率出现错误
if (randBoolWithProbability(0.1)) {
printl ("模拟错误发生");
// 错误处理代码
return false;
}
printl ("操作成功");
return true;
}
10% 概率模拟错误发生,90% 概率操作成功
随机化用户行为
function simulateUserBehavior() {
printl ("模拟用户行为:");
// 用户有 70% 的概率点击按钮
if (randBoolWithProbability(0.7)) {
printl ("用户点击了按钮");
} else {
printl ("用户未点击按钮");
}
// 用户有 30% 的概率输入内容
if (randBoolWithProbability(0.3)) {
printl ("用户输入了内容");
} else {
printl ("用户未输入内容");
}
// 用户有 50% 的概率继续操作
if (randBool()) {
printl ("用户继续下一步操作");
} else {
printl ("用户退出操作");
}
}
模拟不同概率的用户交互行为
配置随机化
function setRandomConfigurations() {
printl ("设置随机配置:");
// 随机启用日志
var enableLogging = randBool();
config.setConfig("enable_logging", enableLogging.toString());
printl ("日志启用:" + enableLogging);
// 随机启用调试模式(20% 概率)
var debugMode = randBoolWithProbability(0.2);
config.setConfig("debug_mode", debugMode.toString());
printl ("调试模式:" + debugMode);
// 随机选择主题
var darkTheme = randBool();
config.setConfig("dark_theme", darkTheme.toString());
printl ("深色主题:" + darkTheme);
}
随机配置系统参数,包括日志、调试模式和主题等
随机化自动化脚本行为
function randomAutomationBehavior() {
printl ("随机自动化行为:");
// 随机决定是否进行 OCR 识别
if (randBool()) {
printl ("执行 OCR 识别");
// OCR 识别代码
// var ocrResult = screen.ocr(0, 0, 1, 1);
} else {
printl ("跳过 OCR 识别");
}
// 随机决定是否截图
if (randBoolWithProbability(0.8)) {
printl ("执行截图");
// 截图代码
// var screenshot = screen.screenShotFull();
} else {
printl ("跳过截图");
}
// 随机决定是否发送网络请求
if (randBool()) {
printl ("发送网络请求");
// 网络请求代码
// var response = new OkHttp().get('https://example.com/api
');
} else {
printl ("跳过网络请求");
}
}
&#128204;随机数组元素选择函数
类别
详情说明
函数名称
randArrayElement
方法功能
从数组中随机选择一个元素
方法签名
Object randArrayElement(Array array)
返回值
Object(数组中的随机元素)
参数
- Array array:源数组
函数名称
randArrayElements
方法功能
从数组中随机选择指定数量的元素
方法签名
Array randArrayElements(Array array, Int32 count)
返回值
Array(包含随机选择元素的数组)
参数
- Array array:源数组 - Int32 count:需要选择的元素数量
使用示例表
应用场景
示例代码
说明
基本使用示例
var colors = ["红色", "绿色", "蓝色", "黄色", "紫色"]; var randomColor = randArrayElement(colors); printl ("从颜色数组中随机选择:" + randomColor);
从颜色数组中随机选择一个元素
多次随机选择示例
printl ("连续 3 次随机选择颜色:"); for (var i = 0; i < 3; i++) { printl ("第" + (i+1) + "次选择:" + randArrayElement (colors)); }
循环 3 次从颜色数组中随机选择元素
随机选择多个元素示例
var selectedColors = randArrayElements(colors, 3); printl ("随机选择 3 种颜色:" + selectedColors.join (","));
从颜色数组中随机选择 3 个不重复的元素
随机选择应用进行操作
function randomAppOperation() { var apps = ["微信", "QQ", "淘宝", "微博", "抖音", "快手"]; var selectedApp = randArrayElement(apps); printl ("随机选择操作应用:" + selectedApp); //app.openApp (selectedApp); // 实际启动应用 }
随机选择一个应用进行操作
随机选择网络请求方法
function randomHttpRequest() { var methods = ["GET", "POST", "PUT", "DELETE", "PATCH"]; var urls = [ "https://api.example.com/users
", "https://api.example.com/products
", "https://api.example.com/orders
" ]; var method = randArrayElement(methods); var url = randArrayElement(urls); printl ("随机 HTTP 请求:" + method + " " + url); // var response = new OkHttp()method.toLowerCase()
; // 实际发送请求 }
随机组合 HTTP 请求方法和 URL 地址
随机选择 OCR 识别区域
function randomOCRRegion() { var regions = [ [0, 0, 0.5, 0.5], // 左上角区域 [0.5, 0, 1, 0.5], // 右上角区域 [0, 0.5, 0.5, 1], // 左下角区域 [0.5, 0.5, 1, 1], // 右下角区域 [0.25, 0.25, 0.75, 0.75] // 中心区域 ]; var region = randArrayElement(regions); printl ("随机 OCR 识别区域: [" + region.join (",") + "]"); return region; }
从预设的区域中随机选择一个作为 OCR 识别区域
随机选择点击策略
function randomClickStrategy() { var strategies = [ function () { printl ("执行普通点击"); }, function () { printl ("执行双击操作"); }, function () { printl ("执行长按操作"); }, function () { printl ("执行滑动操作"); } ]; var strategy = randArrayElement(strategies); strategy (); // 执行选中的策略 }
随机选择一种交互操作策略并执行
随机选择测试数据
function getRandomTestData() { var usernames = ["user123", "testuser", "demoaccount", "sampleuser"]; var passwords = ["password123", "testpass", "demo123", "samplepass"]; var emails = ["user@example.com", "test@mail.com", "demo@test.com"]; var userData = { username: randArrayElement(usernames), password: randArrayElement(passwords), email: randArrayElement(emails) }; printl ("随机测试数据:" + JSON.stringify (userData)); return userData; }
从不同数组中随机选择数据组合成测试用户信息
&#128204;随机日期
类别
详情说明
函数名称
randomDate
方法功能
生成指定范围内的随机日期
方法签名
Date randomDate(Date startDate, Date endDate)
返回值
Date(生成的随机日期)
参数
- Date startDate:随机日期的开始范围 - Date endDate:随机日期的结束范围
函数名称
randomDateString
方法功能
生成指定格式的随机日期字符串
方法签名
String randomDateString(Date startDate, Date endDate, String format)
返回值
String(生成的随机日期字符串)
参数
- Date startDate:随机日期的开始范围 - Date endDate:随机日期的结束范围 - String format:日期格式(如:"yyyy-MM-dd"、"yyyy/MM/dd HH:mm:ss")
函数名称
formatDate
方法功能
将日期对象格式化为指定格式的字符串
方法签名
String formatDate(Date date, String format)
返回值
String(格式化后的日期字符串)
参数
- Date date:要格式化的日期对象 - String format:日期格式(如:"yyyy-MM-dd"、"yyyy/MM/dd HH:mm:ss")
使用示例表
应用场景
示例代码
说明
基本随机日期生成示例
var startDate = new Date (2020, 0, 1); // 2020 年 1 月 1 日 var endDate = new Date (2025, 11, 31); // 2025 年 12 月 31 日 var randomDateResult = randomDate(startDate, endDate); printl ("生成随机日期:" + randomDateResult);
生成 2020-2025 年间的随机日期
随机日期字符串示例
var randomDateStringResult = randomDateString(startDate, endDate, "yyyy-MM-dd"); printl ("生成随机日期字符串 (yyyy-MM-dd):" + randomDateStringResult); var randomDateTimeString = randomDateString(startDate, endDate, "yyyy/MM/dd HH:mm:ss"); printl ("生成随机日期时间字符串:" + randomDateTimeString);
生成指定格式的随机日期字符串,支持 "yyyy-MM-dd" 和 "yyyy/MM/dd HH:mm:ss" 等格式
多次生成随机日期示例
printl ("连续生成 5 个随机日期:"); for (var i = 0; i < 5; i++) { var date = randomDate(startDate, endDate); printl ("随机日期" + (i+1) + ":" + formatDate (date, "yyyy-MM-dd HH:mm:ss")); }
循环生成 5 个指定范围内的随机日期并格式化输出
随机生成用户注册日期
function generateRandomUserRegistration() { var now = new Date(); var oneYearAgo = new Date(); oneYearAgo.setFullYear(now.getFullYear() - 1); var registrationDate = randomDate(oneYearAgo, now); printl ("用户随机注册日期:" + formatDate (registrationDate, "yyyy-MM-dd HH:mm:ss")); return registrationDate; }
生成近一年内的随机用户注册日期
随机生成订单日期
function generateRandomOrderDate() { var now = new Date(); var threeMonthsAgo = new Date(); threeMonthsAgo.setMonth(now.getMonth() - 3); var orderDate = randomDate(threeMonthsAgo, now); printl ("订单随机日期:" + formatDate (orderDate, "yyyy-MM-dd")); return orderDate; }
生成近三个月内的随机订单日期
随机生成生日
function generateRandomBirthday() { var startBirthday = new Date (1980, 0, 1); // 1980 年 1 月 1 日 var endBirthday = new Date (2005, 11, 31); // 2005 年 12 月 31 日 var birthday = randomDate(startBirthday, endBirthday); printl ("随机生日:" + formatDate (birthday, "yyyy-MM-dd")); return birthday; }
生成 1980-2005 年间的随机生日日期
随机生成日志时间
function generateRandomLogTime() { var now = new Date(); var oneWeekAgo = new Date(); oneWeekAgo.setDate(now.getDate() - 7); var logTime = randomDate(oneWeekAgo, now); printl ("日志随机时间:" + formatDate (logTime, "yyyy-MM-dd HH:mm:ss.SSS")); return logTime; }
生成近一周内的随机日志时间,精确到毫秒
随机生成项目开始和结束日期
function generateRandomProjectDates() { var now = new Date(); var oneYearLater = new Date(); oneYearLater.setFullYear(now.getFullYear() + 1); var projectStart = randomDate(now, oneYearLater); var projectEnd = new Date(projectStart); projectEnd.setMonth (projectStart.getMonth () + Math.floor (Math.random () * 12) + 1); // 1-12 个月后结束 printl ("项目开始日期:" + formatDate (projectStart, "yyyy-MM-dd")); printl ("项目结束日期:" + formatDate (projectEnd, "yyyy-MM-dd")); return {start: projectStart, end: projectEnd}; }
生成未来一年内的项目开始日期,以及 1-12 个月后的结束日期
随机生成历史事件日期
function generateRandomHistoricalDate() { var startDate = new Date (2000, 0, 1); // 2000 年 1 月 1 日 var endDate = new Date (); // 今天 var historicalDate = randomDate(startDate, endDate); printl ("随机历史事件日期:" + formatDate (historicalDate, "yyyy 年 MM 月 dd 日")); return historicalDate; }
生成 2000 年至今的随机历史事件日期,使用中文格式输出
类别
详情说明
函数名称
randomColor
方法功能
生成随机颜色值
方法签名
String randomColor()
返回值
String(十六进制颜色值,格式为 #RRGGBB)
参数
函数名称
randomRGBColor
方法功能
生成随机 RGB 颜色值
方法签名
Object randomRGBColor()
返回值
Object(包含 r、g、b 属性的对象,每个属性值范围为 0-255)
参数
函数名称
randomRGBAColor
方法功能
生成随机 RGBA 颜色值
方法签名
Object randomRGBAColor()
返回值
Object(包含 r、g、b、a 属性的对象,r/g/b 范围 0-255,a 范围 0.00-1.00)
参数
函数名称
randomHSLColor
方法功能
生成随机 HSL 颜色值
方法签名
Object randomHSLColor()
返回值
Object(包含 h、s、l 属性的对象,h 范围 0-360,s/l 范围 0-100%)
参数
使用示例表使用示例表
应用场景
示例代码
说明
基本随机十六进制颜色生成
var randomHexColor = randomColor();
printl ("生成随机十六进制颜色:" + randomHexColor);
生成格式为 #RRGGBB 的随机十六进制颜色值
基本随机 RGB 颜色生成
var randomRGB = randomRGBColor();
printl ("生成随机 RGB 颜色: rgb (" + randomRGB.r + "," + randomRGB.g + "," + randomRGB.b + ")");
生成包含 r、g、b 属性的 RGB 颜色对象,并以rgb(r, g, b)
格式输出
基本随机 RGBA 颜色生成
var randomRGBA = randomRGBAColor();
printl ("生成随机 RGBA 颜色: rgba (" + randomRGBA.r + "," + randomRGBA.g + "," + randomRGBA.b + "," + randomRGBA.a + ")");
生成包含 r、g、b、a 属性的 RGBA 颜色对象,并以rgba(r, g, b, a)
格式输出
基本随机 HSL 颜色生成
var randomHSL = randomHSLColor();
printl ("生成随机 HSL 颜色: hsl (" + randomHSL.h + "," + randomHSL.s + "%," + randomHSL.l + "%)");
生成包含 h、s、l 属性的 HSL 颜色对象,并以hsl(h, s%, l%)
格式输出
多次生成随机颜色
printl ("连续生成 5 个随机颜色:");
for (var i = 0; i < 5; i++) {
printl ("随机颜色" + (i+1) + ":" + randomColor ());
}
循环生成 5 个随机十六进制颜色值并输出
随机设置界面主题色
function setRandomThemeColor() {
var themeColor = randomColor();
printl ("设置随机主题色:" + themeColor);
// 在实际应用中,可以将这个颜色应用到界面元素上
return themeColor;
}
生成随机十六进制颜色作为界面主题色
随机生成图表颜色
function generateChartColors(count) {
var colors = [];
for (var i = 0; i < count; i++) {
colors.push(randomColor());
}
printl ("生成图表颜色:" + colors.join (","));
return colors;
}
根据传入的数量,生成对应个数的随机十六进制颜色数组(用于图表系列配色)
随机生成按钮样式(背景 + 文字色)
function generateRandomButtonStyles() {
var bgColor = randomColor();
var textColor = randomColor();
printl ("按钮背景色:" + bgColor + ", 文字颜色:" + textColor);
// 在实际应用中,可以用于设置按钮样式
return {backgroundColor: bgColor, textColor: textColor};
}
生成随机的按钮背景色和文字色组合,返回样式对象
随机生成渐变色
function generateRandomGradient() {
var color1 = randomColor();
var color2 = randomColor();
var gradient = "linear-gradient(45deg, " + color1 + ", " + color2 + ")";
printl ("生成随机渐变:" + gradient);
return gradient;
}
生成 45 度角的线性渐变色,使用两个随机十六进制颜色作为渐变起点和终点
随机生成半透明颜色
function generateRandomTransparentColor() {
var baseColor = randomColor();
var alpha = (Math.random () * 0.8 + 0.2).toFixed (2); // 0.2-1.0 之间的透明度
var transparentColor = baseColor + Math.floor(alpha * 255).toString(16);
printl ("基础颜色:" + baseColor + ", 透明度:" + alpha + ", 半透明颜色:" + transparentColor);
return transparentColor;
}
基于随机十六进制颜色,生成透明度 0.2-1.0 的半透明颜色(格式 #RRGGBBAA)
随机生成柔和颜色(低饱和度)
function generateRandomSoftColor() {
var h = Math.floor(Math.random() * 361);
var s = Math.floor (Math.random () * 31); // 0-30% 饱和度,确保颜色柔和
var l = Math.floor (Math.random () * 41) + 30; // 30-70% 亮度,确保颜色不会太暗或太亮
var hsl = "hsl(" + h + ", " + s + "%, " + l + "%)";
printl ("生成随机柔和颜色:" + hsl);
return hsl;
}
&#128204;随机UUID生成函数
函数说明表
类别
详情说明
函数名称
randomUUID
方法功能
生成随机 UUID(通用唯一识别码)
方法签名
String randomUUID()
返回值
String(UUID 字符串,格式为 xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx)
参数
函数名称
simpleUUID
方法功能
生成简单的 UUID(只包含数字和字母)
方法签名
String simpleUUID()
返回值
String(32 位 UUID 字符串)
参数
使用示例表
应用场景
示例代码
说明
标准 UUID 生成示例
var uuid = randomUUID();
printl ("生成标准 UUID:" + uuid);
生成符合标准格式(带连字符)的 UUID 字符串
简单 UUID 生成示例
var simpleUuid = simpleUUID();
printl ("生成简单 UUID:" + simpleUuid);
生成 32 位无连字符的简单 UUID 字符串(仅包含数字和字母)
多次生成随机 UUID 示例
printl ("连续生成 5 个随机 UUID:");
for (var i = 0; i < 5; i++) {
printl(" UUID " + (i+1) + ": " + randomUUID());
}
循环生成 5 个标准格式的 UUID 并输出
生成设备唯一标识符
function generateDeviceId() {
var deviceId = randomUUID();
printl ("生成设备 ID:" + deviceId);
return deviceId;
}
使用标准 UUID 生成设备唯一标识符
生成会话 ID
function generateSessionId() {
var sessionId = randomUUID();
printl ("生成会话 ID:" + sessionId);
return sessionId;
}
使用标准 UUID 生成用户会话唯一标识
生成事务 ID
function generateTransactionId() {
var transactionId = simpleUUID();
printl ("生成事务 ID:" + transactionId);
return transactionId;
}
使用简单 UUID 生成交易事务唯一标识
生成 API 请求 ID
function generateRequestId() {
var requestId = randomUUID();
printl ("生成请求 ID:" + requestId);
return requestId;
}
使用标准 UUID 生成 API 请求唯一标识,用于追踪请求
生成文件唯一标识符
function generateFileId() {
var fileId = simpleUUID();
printl ("生成文件 ID:" + fileId);
return fileId;
}
使用简单 UUID 生成文件唯一标识,适合作为文件名或存储标识
生成用户临时标识符
function generateTempUserId() {
var tempUserId = randomUUID();
printl ("生成临时用户 ID:" + tempUserId);
return tempUserId;
}
使用标准 UUID 生成未登录用户的临时标识
生成订单号(带 UUID)
function generateOrderNumber() {
var timestamp = new Date().getTime();
var uuidPart = simpleUUID().substr(0, 8);
var orderNumber = "ORD" + timestamp + uuidPart.toUpperCase();
printl ("生成订单号:" + orderNumber);
return orderNumber;
}
结合时间戳和简单 UUID 前 8 位生成订单号,兼具唯一性和时间关联性
生成随机密码重置令牌
function generateResetToken() {
var resetToken = randomUUID();
printl ("生成密码重置令牌:" + resetToken);
return resetToken;
}
使用标准 UUID 生成密码重置链接中的唯一令牌,确保安全性
&#128204;随机密码 / 验证码
[color=var(--md-box-samantha-deep-text-color) !important]随机密码 / 验证码生成函数及使用说明[color=var(--md-box-samantha-deep-text-color) !important]函数说明表
类别
详情说明
函数名称
randomPassword
方法功能
生成指定长度的随机密码,可自定义包含的字符类型
方法签名
String randomPassword(Int32 length, Boolean includeUppercase, Boolean includeLowercase, Boolean includeNumbers, Boolean includeSymbols)
返回值
String(生成的随机密码)
参数
- Int32 length:密码长度
- Boolean includeUppercase:是否包含大写字母
- Boolean includeLowercase:是否包含小写字母
- Boolean includeNumbers:是否包含数字
- Boolean includeSymbols:是否包含特殊符号(!@#$%^&*()_+-=[]{}
;:,.<>?)
函数名称
randomVerificationCode
方法功能
生成指定长度的随机验证码,默认包含数字和大写字母
方法签名
String randomVerificationCode(Int32 length)
返回值
String(生成的随机验证码)
参数
- Int32 length:验证码长度
函数名称
randomNumericCode
方法功能
生成指定长度的纯数字验证码
方法签名
String randomNumericCode(Int32 length)
返回值
String(生成的纯数字验证码)
参数
- Int32 length:验证码长度
函数名称
randomAlphaCode
方法功能
生成指定长度的纯字母验证码,支持区分大小写
方法签名
String randomAlphaCode(Int32 length, Boolean caseSensitive)
返回值
String(生成的纯字母验证码)
参数
- Int32 length:验证码长度
- Boolean caseSensitive:是否区分大小写(true = 区分大小写,false = 仅大写字母)
[color=var(--md-box-samantha-deep-text-color) !important]使用示例表
应用场景
示例代码
说明
生成复杂密码(12 位,全字符类型)
var password1 = randomPassword(12, true, true, true, true);
printl ("生成 12 位复杂密码:" + password1);
生成包含大写字母、小写字母、数字、特殊符号的 12 位复杂密码
生成字母数字密码(8 位)
var password2 = randomPassword(8, true, true, true, false);
printl ("生成 8 位字母数字密码:" + password2);
生成包含大小写字母、数字(无特殊符号)的 8 位密码
生成小写字母数字密码(6 位)
var password3 = randomPassword(6, false, true, true, false);
printl ("生成 6 位小写字母数字密码:" + password3);
生成包含小写字母、数字(无大写、无特殊符号)的 6 位密码
生成 6 位混合验证码(数字 + 大写)
var verificationCode1 = randomVerificationCode(6);
printl ("生成 6 位验证码:" + verificationCode1);
生成包含数字和大写字母的 6 位通用验证码
生成 4 位混合验证码(数字 + 大写)
var verificationCode2 = randomVerificationCode(4);
printl ("生成 4 位验证码:" + verificationCode2);
生成包含数字和大写字母的 4 位通用验证码
生成 6 位纯数字验证码
var numericCode = randomNumericCode(6);
printl ("生成 6 位纯数字验证码:" + numericCode);
生成仅含数字的 6 位验证码(常用于短信、语音验证)
生成 6 位纯大写字母验证码
var alphaCode1 = randomAlphaCode(6, false);
printl ("生成 6 位大写字母验证码:" + alphaCode1);
生成仅含大写字母的 6 位验证码(不区分大小写)
生成 6 位大小写混合字母验证码
var alphaCode2 = randomAlphaCode(6, true);
printl ("生成 6 位大小写混合字母验证码:" + alphaCode2);
生成包含大小写字母的 6 位验证码(区分大小写)
连续生成 3 个 10 位字母数字密码
printl ("连续生成 3 个随机密码:");
for (var i = 0; i < 3; i++) {
printl ("密码" + (i+1) + ":" + randomPassword (10, true, true, true, false));
}
循环生成 3 个包含大小写字母、数字的 10 位密码
用户注册初始密码生成
function generateInitialPassword() {
var password = randomPassword(10, true, true, true, false);
printl ("生成初始密码:" + password);
return password;
}
生成 10 位字母数字组合的初始密码(用于新用户注册默认密码)
短信验证码生成
function generateSMSCode() {
var smsCode = randomNumericCode(6);
printl ("生成短信验证码:" + smsCode);
return smsCode;
}
生成 6 位纯数字短信验证码(符合主流平台短信验证格式)
邮箱验证令牌生成
function generateEmailVerificationToken() {
var token = randomVerificationCode(32);
printl ("生成邮箱验证令牌:" + token);
return token;
}
生成 32 位数字 + 大写字母的邮箱验证令牌(用于邮箱激活链接)
临时访问密码生成
function generateTempPassword() {
var tempPassword = randomPassword(8, true, true, true, false);
printl ("生成临时密码:" + tempPassword);
return tempPassword;
}
生成 8 位字母数字组合的临时密码(用于密码找回临时登录)
图形验证码文本生成
function generateCaptchaText() {
var captcha = randomAlphaCode(4, true);
printl ("生成图形验证码:" + captcha);
return captcha;
}
生成 4 位大小写混合字母的图形验证码文本(用于网页图形验证)
API 密钥生成
function generateAPIKey() {
var apiKey = randomPassword(32, true, true, true, false);
printl ("生成 API 密钥:" + apiKey);
return apiKey;
}
生成 32 位字母数字组合的 API 密钥(用于接口访问身份验证)
安全令牌生成
function generateSecurityToken() {
var token = randomVerificationCode(64);
printl ("生成安全令牌:" + token);
return token;
}
生成 64 位数字 + 大写字母的安全令牌(用于高安全性场景身份校验)
随机盐值生成
function generateSalt() {
var salt = randomPassword(16, true, true, true, true);
printl ("生成随机盐值:" + salt);
return salt;
}
生成 16 位包含大小写、数字、特殊符号的盐值(用于密码加密存储)
&#128204;随机数组排序(洗牌算法)
[color=var(--md-box-samantha-deep-text-color) !important]函数说明表
类别
详情说明
函数名称
shuffle
方法功能
使用Fisher-Yates 洗牌算法对数组进行随机排序,生成新数组(不修改原数组)
方法签名
Array shuffle(Array array)
返回值
Array(随机排序后的新数组)
参数
- Array array:需要随机排序的源数组
函数名称
shuffleInPlace
方法功能
使用Fisher-Yates 洗牌算法对数组进行原地随机排序(直接修改原数组)
方法签名
Void shuffleInPlace(Array array)
返回值
Void(无返回值,排序后结果直接作用于输入数组)
参数
- Array array:需要随机排序的源数组(将被直接修改)
[color=var(--md-box-samantha-deep-text-color) !important]使用示例表
应用场景
示例代码
说明
基本洗牌示例(不修改原数组)
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
printl ("原始数组:" + numbers.join (","));

var shuffledNumbers = shuffle(numbers);
printl ("洗牌后数组:" + shuffledNumbers.join (","));
printl ("原数组未变:" + numbers.join (","));
通过shuffle
生成新数组,原数组numbers
保持初始顺序,适合需保留源数据的场景
原地洗牌示例(修改原数组)
var colors = ["红色", "绿色", "蓝色", "黄色", "紫色", "橙色"];
printl ("原始颜色数组:" + colors.join (","));

shuffleInPlace(colors);
printl ("原地洗牌后:" + colors.join (","));
通过shuffleInPlace
直接修改原数组colors
,无需额外存储新数组,适合内存敏感场景
多次洗牌示例
var cards = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"];
printl ("原始牌组:" + cards.join (","));

printl ("多次洗牌结果:");
for (var i = 0; i < 3; i++) {
var shuffledCards = shuffle(cards);
printl ("第" + (i+1) + "次洗牌:" + shuffledCards.join (","));
}
对同一源数组(牌组)多次调用shuffle
,每次生成独立的随机排序结果,模拟真实洗牌场景
随机播放列表
function shufflePlaylist(songs) {
printl ("原始播放列表:" + songs.join ("->"));
var shuffledSongs = shuffle(songs);
printl ("随机播放列表:" + shuffledSongs.join ("->"));
return shuffledSongs;
}

printl ("播放列表随机排序:");
var playlist = ["歌曲 1", "歌曲 2", "歌曲 3", "歌曲 4", "歌曲 5"];
shufflePlaylist(playlist);
打乱歌曲顺序生成随机播放列表,保留原始列表不被修改
随机抽取题目
function randomizeQuestions(questions) {
printl ("原始题目顺序:" + questions.join (","));
var randomizedQuestions = shuffle(questions);
printl ("随机题目顺序:" + randomizedQuestions.join (","));
return randomizedQuestions;
}

printl ("题目随机排序:");
var examQuestions = ["选择题 1", "选择题 2", "填空题 1", "填空题 2", "简答题"];
randomizeQuestions(examQuestions);
打乱题目顺序,用于考试、问卷等场景,避免固定顺序影响结果
随机分配任务
function assignTasksRandomly(tasks, people) {
printl ("原始任务列表:" + tasks.join (","));
printl ("参与人员列表:" + people.join (","));
var shuffledTasks = shuffle(tasks);
var assignments = {};
for (var i = 0; i < people.length; i++) {
var person = people;
var taskIndex = i % shuffledTasks.length;
assignments[person] = shuffledTasks[taskIndex];
}
printl ("随机任务分配结果:");
for (var person in assignments) {
printl(" " + person + " -> " + assignments[person]);
}
return assignments;
}

printl ("任务随机分配:");
var taskList = ["任务 A", "任务 B", "任务 C", "任务 D"];
var teamMembers = ["张三", "李四", "王五", "赵六"];
assignTasksRandomly(taskList, teamMembers);
先打乱任务顺序,再按人员列表分配任务,实现公平随机的任务分发
随机抽奖
function lottery(participants, prizeCount) {
printl ("参与抽奖人员:" + participants.join (","));
printl ("奖品数量:" + prizeCount);
var shuffledParticipants = shuffle(participants);
var winners = shuffledParticipants.slice(0, prizeCount);
printl ("中奖人员:" + winners.join (","));
return winners;
}

printl ("随机抽奖:");
var participants = ["用户 A", "用户 B", "用户 C", "用户 D", "用户 E", "用户 F", "用户 G"];
lottery(participants, 3);
打乱参与人员顺序,取前 N 名作为中奖者,确保抽奖公平性
随机测试数据生成
function generateRandomTestData(items) {
printl ("原始测试数据:" + items.join (","));
var testDataSets = [];
for (var i = 0; i < 5; i++) {
var shuffledData = shuffle(items);
testDataSets.push(shuffledData);
printl ("测试数据集" + (i+1) + ":" + shuffledData.join (","));
}
return testDataSets;
}

printl ("随机测试数据生成:");
var testData = ["数据 1", "数据 2", "数据 3", "数据 4", "数据 5"];
generateRandomTestData(testData);
生成多组不同顺序的测试数据,用于验证算法对数据顺序的鲁棒性
游戏地图随机化
function randomizeGameMap(rooms) {
printl ("原始房间顺序:" + rooms.join ("->"));
var randomizedRooms = shuffle(rooms);
printl ("随机房间顺序:" + randomizedRooms.join ("->"));
return randomizedRooms;
}

printl ("游戏地图随机化:");
var gameRooms = ["起始房间", "怪物房间", "宝藏房间", "商店房间", "Boss 房间"];
randomizeGameMap(gameRooms);
打乱游戏房间顺序,生成随机地图路径,提升游戏可玩性
多个例子全部集合在一起:


  1. /**
  2. * 随机数工具类 - 整合所有随机相关功能
  3. * 包含:基础随机值、坐标、数组、日期、颜色、UUID、密码验证码、洗牌算法等
  4. * 交流QQ群:711841924(苹果内测群一)、528816639
  5. */
  6. const RandomUtils = {
  7.   // ========================== 1. 基础随机值生成 ==========================
  8.   /**
  9.    * LtUqFOGkc6 - 生成指定范围的随机小数
  10.    * @param {number} min - 最小值(包含)
  11.    * @param {number} max - 最大值(包含)
  12.    * @returns {number} 随机小数
  13.    */
  14.   LtUqFOGkc6(min, max) {
  15.     return Math.random() * (max - min) + min;
  16.   },

  17.   /**
  18.    * randInt / WBJqf91s7J - 生成指定范围的随机整数(两个函数功能一致,统一实现)
  19.    * @param {number} min - 最小值(包含)
  20.    * @param {number} max - 最大值(包含)
  21.    * @returns {number} 随机整数
  22.    */
  23.   randInt(min, max) {
  24.     // 修正:确保参数是整数并正确处理边界
  25.     min = Math.ceil(min);
  26.     max = Math.floor(max);
  27.     return Math.floor(Math.random() * (max - min + 1)) + min;
  28.   },
  29.   WBJqf91s7J: function (min, max) { // 兼容原命名
  30.     return this.randInt(min, max);
  31.   },

  32.   /**
  33.    * randBool - 生成 50% 概率的随机布尔值
  34.    * @returns {boolean} true/false
  35.    */
  36.   randBool() {
  37.     return Math.random() < 0.5;
  38.   },

  39.   /**
  40.    * randBoolWithProbability - 按指定概率生成布尔值
  41.    * @param {number} probability - 返回 true 的概率(0.0 ~ 1.0)
  42.    * @returns {boolean} 按概率生成的布尔值
  43.    */
  44.   randBoolWithProbability(probability) {
  45.     // 边界值处理:确保概率在合法范围
  46.     probability = Math.max(0, Math.min(1, probability));
  47.     return Math.random() < probability;
  48.   },

  49.   /**
  50.    * GQGqcAlZv2 - 生成指定长度的随机字符(字母+数字)
  51.    * @param {number} length - 字符长度(正整数)
  52.    * @returns {string} 随机字符串
  53.    */
  54.   GQGqcAlZv2(length) {
  55.     if (length <= 0) return "";
  56.     const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  57.     let result = "";
  58.     for (let i = 0; i < length; i++) {
  59.       const randomIndex = this.randInt(0, chars.length - 1);
  60.       result += chars[randomIndex];
  61.     }
  62.     return result;
  63.   },


  64.   // ========================== 2. 坐标与区域随机 ==========================
  65.   /**
  66.    * randClickPosition - 在指定区域内生成随机点击坐标
  67.    * @param {number} left - 左边界
  68.    * @param {number} top - 上边界
  69.    * @param {number} right - 右边界
  70.    * @param {number} bottom - 下边界
  71.    * @returns {Object} 包含 x/y 坐标的对象
  72.    */
  73.   randClickPosition(left, top, right, bottom) {
  74.     const x = this.LtUqFOGkc6(left, right);
  75.     const y = this.LtUqFOGkc6(top, bottom);
  76.     return { x: Number(x.toFixed(2)), y: Number(y.toFixed(2)) }; // 保留2位小数,避免精度冗余
  77.   },


  78.   // ========================== 3. 数组随机操作 ==========================
  79.   /**
  80.    * randArrayElement / randChoice - 从数组随机选择1个元素(兼容原命名)
  81.    * @param {Array} arr - 源数组
  82.    * @returns {any|null} 随机元素(数组为空时返回null)
  83.    */
  84.   randArrayElement(arr) {
  85.     if (!Array.isArray(arr) || arr.length === 0) return null;
  86.     const index = this.randInt(0, arr.length - 1);
  87.     return arr[index];
  88.   },
  89.   randChoice: function (arr) {
  90.     return this.randArrayElement(arr);
  91.   },

  92.   /**
  93.    * randArrayElements - 从数组随机选择指定数量的元素(不重复)
  94.    * @param {Array} arr - 源数组
  95.    * @param {number} count - 选择数量
  96.    * @returns {Array} 随机元素数组(数量不足时返回所有元素)
  97.    */
  98.   randArrayElements(arr, count) {
  99.     if (!Array.isArray(arr) || arr.length === 0) return [];
  100.     // 复制数组避免修改原数组,再用洗牌算法截取
  101.     const copyArr = [...arr];
  102.     this.shuffleInPlace(copyArr);
  103.     return copyArr.slice(0, Math.min(count, arr.length));
  104.   },

  105.   /**
  106.    * shuffle - Fisher-Yates洗牌算法(生成新数组,不修改原数组)
  107.    * @param {Array} arr - 源数组
  108.    * @returns {Array} 随机排序后的新数组
  109.    */
  110.   shuffle(arr) {
  111.     if (!Array.isArray(arr)) return [];
  112.     const copyArr = [...arr];
  113.     this.shuffleInPlace(copyArr);
  114.     return copyArr;
  115.   },

  116.   /**
  117.    * shuffleInPlace - Fisher-Yates洗牌算法(原地排序,修改原数组)
  118.    * @param {Array} arr - 源数组(将被直接修改)
  119.    */
  120.   shuffleInPlace(arr) {
  121.     if (!Array.isArray(arr)) return;
  122.     for (let i = arr.length - 1; i > 0; i--) {
  123.       const j = this.randInt(0, i);
  124.       // 交换元素
  125.       [arr[i], arr[j]] = [arr[j], arr[i]];
  126.     }
  127.   },


  128.   // ========================== 4. 日期随机生成 ==========================
  129.   /**
  130.    * formatDate - 日期格式化工具
  131.    * @param {Date} date - 日期对象
  132.    * @param {string} format - 格式(如 "yyyy-MM-dd"、"yyyy/MM/dd HH:mm:ss")
  133.    * @returns {string} 格式化后的日期字符串
  134.    */
  135.   formatDate(date, format) {
  136.     if (!(date instanceof Date)) return "";
  137.     const pad = (num) => num.toString().padStart(2, "0"); // 补零函数
  138.     return format.replace(/yyyy/g, date.getFullYear())
  139.       .replace(/MM/g, pad(date.getMonth() + 1)) // 月份0-11,需+1
  140.       .replace(/dd/g, pad(date.getDate()))
  141.       .replace(/HH/g, pad(date.getHours()))
  142.       .replace(/mm/g, pad(date.getMinutes()))
  143.       .replace(/ss/g, pad(date.getSeconds()))
  144.       .replace(/SSS/g, pad(date.getMilliseconds()).padStart(3, "0"));
  145.   },

  146.   /**
  147.    * randomDate - 生成指定范围的随机日期对象
  148.    * @param {Date} startDate - 开始日期
  149.    * @param {Date} endDate - 结束日期
  150.    * @returns {Date} 随机日期
  151.    */
  152.   randomDate(startDate, endDate) {
  153.     if (!(startDate instanceof Date) || !(endDate instanceof Date)) {
  154.       throw new Error("参数必须是Date对象");
  155.     }
  156.     const startTime = startDate.getTime();
  157.     const endTime = endDate.getTime();
  158.     const randomTime = this.LtUqFOGkc6(startTime, endTime);
  159.     return new Date(randomTime);
  160.   },

  161.   /**
  162.    * randomDateString - 生成指定格式的随机日期字符串
  163.    * @param {Date} startDate - 开始日期
  164.    * @param {Date} endDate - 结束日期
  165.    * @param {string} format - 日期格式
  166.    * @returns {string} 格式化后的随机日期
  167.    */
  168.   randomDateString(startDate, endDate, format) {
  169.     const randomDate = this.randomDate(startDate, endDate);
  170.     return this.formatDate(randomDate, format);
  171.   },


  172.   // ========================== 5. 颜色随机生成 ==========================
  173.   /**
  174.    * randomColor - 生成随机十六进制颜色(#RRGGBB)
  175.    * @returns {string} 十六进制颜色值
  176.    */
  177.   randomColor() {
  178.     const letters = "0123456789ABCDEF";
  179.     let color = "#";
  180.     for (let i = 0; i < 6; i++) {
  181.       color += letters[this.randInt(0, 15)];
  182.     }
  183.     return color;
  184.   },

  185.   /**
  186.    * randomRGBColor - 生成随机RGB颜色
  187.    * @returns {Object} { r: 0-255, g: 0-255, b: 0-255 }
  188.    */
  189.   randomRGBColor() {
  190.     return {
  191.       r: this.randInt(0, 255),
  192.       g: this.randInt(0, 255),
  193.       b: this.randInt(0, 255)
  194.     };
  195.   },

  196.   /**
  197.    * randomRGBAColor - 生成随机RGBA颜色
  198.    * @returns {Object} { r: 0-255, g: 0-255, b: 0-255, a: 0.00-1.00 }
  199.    */
  200.   randomRGBAColor() {
  201.     return {
  202.       ...this.randomRGBColor(),
  203.       a: Number(this.LtUqFOGkc6(0, 1).toFixed(2))
  204.     };
  205.   },

  206.   /**
  207.    * randomHSLColor - 生成随机HSL颜色
  208.    * @returns {Object} { h: 0-360, s: 0-100%, l: 0-100% }
  209.    */
  210.   randomHSLColor() {
  211.     return {
  212.       h: this.randInt(0, 360),
  213.       s: `${this.randInt(0, 100)}%`,
  214.       l: `${this.randInt(0, 100)}%`
  215.     };
  216.   },

  217.   /**
  218.    * generateRandomSoftColor - 生成低饱和度柔和颜色(HSL格式)
  219.    * @returns {string} HSL颜色字符串(如 "hsl(120, 20%, 50%)")
  220.    */
  221.   generateRandomSoftColor() {
  222.     const h = this.randInt(0, 360);
  223.     const s = this.randInt(0, 30); // 0-30% 饱和度(柔和)
  224.     const l = this.randInt(30, 70); // 30-70% 亮度(不暗不亮)
  225.     return `hsl(${h}, ${s}%, ${l}%)`;
  226.   },


  227.   // ========================== 6. UUID 生成 ==========================
  228.   /**
  229.    * randomUUID - 生成标准UUID(格式:xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx)
  230.    * @returns {string} 标准UUID字符串
  231.    */
  232.   randomUUID() {
  233.     return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
  234.       const r = this.randInt(0, 15); // 修正:使用整数随机数而不是小数
  235.       const v = c === 'x' ? r : (r & 0x3 | 0x8); // y位固定为 0100 或 1000
  236.       return v.toString(16);
  237.     });
  238.   },

  239.   /**
  240.    * simpleUUID - 生成32位简化UUID(无连字符,仅字母+数字)
  241.    * @returns {string} 32位UUID字符串
  242.    */
  243.   simpleUUID() {
  244.     return this.randomUUID().replace(/-/g, '');
  245.   },


  246.   // ========================== 7. 密码与验证码生成 ==========================
  247.   /**
  248.    * randomPassword - 自定义复杂度的随机密码
  249.    * @param {number} length - 密码长度
  250.    * @param {boolean} includeUppercase - 是否包含大写字母
  251.    * @param {boolean} includeLowercase - 是否包含小写字母
  252.    * @param {boolean} includeNumbers - 是否包含数字
  253.    * @param {boolean} includeSymbols - 是否包含特殊符号(!@#$%^&*()_+-=[]{};:,.<>?)
  254.    * @returns {string} 随机密码
  255.    */
  256.   randomPassword(length, includeUppercase, includeLowercase, includeNumbers, includeSymbols) {
  257.     if (length <= 0) return "";
  258.     // 定义字符集
  259.     let chars = "";
  260.     if (includeUppercase) chars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  261.     if (includeLowercase) chars += "abcdefghijklmnopqrstuvwxyz";
  262.     if (includeNumbers) chars += "0123456789";
  263.     if (includeSymbols) chars += "!@#$%^&*()_+-=[]{};:,.<>?";
  264.     // 兜底:若未选任何字符集,默认字母+数字
  265.     if (chars === "") chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  266.    
  267.     let password = "";
  268.     for (let i = 0; i < length; i++) {
  269.       password += chars[this.randInt(0, chars.length - 1)];
  270.     }
  271.     return password;
  272.   },

  273.   /**
  274.    * randomVerificationCode - 混合验证码(数字+大写字母)
  275.    * @param {number} length - 验证码长度
  276.    * @returns {string} 混合验证码
  277.    */
  278.   randomVerificationCode(length) {
  279.     // 修正:根据函数描述,应该是数字+大写字母
  280.     if (length <= 0) return "";
  281.     const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  282.     let result = "";
  283.     for (let i = 0; i < length; i++) {
  284.       result += chars[this.randInt(0, chars.length - 1)];
  285.     }
  286.     return result;
  287.   },

  288.   /**
  289.    * randomNumericCode - 纯数字验证码
  290.    * @param {number} length - 验证码长度
  291.    * @returns {string} 纯数字验证码
  292.    */
  293.   randomNumericCode(length) {
  294.     if (length <= 0) return "";
  295.     const chars = "0123456789";
  296.     let result = "";
  297.     for (let i = 0; i < length; i++) {
  298.       result += chars[this.randInt(0, chars.length - 1)];
  299.     }
  300.     return result;
  301.   },

  302.   /**
  303.    * randomAlphaCode - 纯字母验证码
  304.    * @param {number} length - 验证码长度
  305.    * @param {boolean} caseSensitive - 是否区分大小写(true=混合,false=仅大写)
  306.    * @returns {string} 纯字母验证码
  307.    */
  308.   randomAlphaCode(length, caseSensitive) {
  309.     if (length <= 0) return "";
  310.     let chars = "";
  311.     if (caseSensitive) {
  312.       // 区分大小写,混合大小写字母
  313.       chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  314.     } else {
  315.       // 不区分大小写,仅大写字母
  316.       chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  317.     }
  318.    
  319.     let result = "";
  320.     for (let i = 0; i < length; i++) {
  321.       result += chars[this.randInt(0, chars.length - 1)];
  322.     }
  323.     return result;
  324.   },


  325.   // ========================== 8. 综合模拟 ==========================
  326.   /**
  327.    * simulateRandomUserActions - 模拟用户随机操作(点击/滑动/输入/等待)
  328.    */
  329.   simulateRandomUserActions() {
  330.     printl("=== 模拟用户随机操作 ==="); // 修正:使用printl而不是console.log
  331.     const actions = ["点击", "滑动", "输入", "等待"];
  332.     const action = this.randArrayElement(actions);

  333.     switch (action) {
  334.       case "点击":
  335.         const clickPos = this.randClickPosition(0, 0, 1920, 1080); // 假设屏幕1920x1080
  336.         printl("随机点击屏幕位置: (" + clickPos.x + ", " + clickPos.y + ")");
  337.         // 实际项目可添加:hid.click(clickPos.x, clickPos.y);
  338.         break;

  339.       case "滑动":
  340.         const startPos = this.randClickPosition(100, 100, 400, 600);
  341.         const endPos = this.randClickPosition(100, 100, 400, 600);
  342.         printl("随机滑动: (" + startPos.x + ", " + startPos.y + ") → (" + endPos.x + ", " + endPos.y + ")");
  343.         // 实际项目可添加:hid.swip(startPos.x, startPos.y, endPos.x, endPos.y, 500);
  344.         break;

  345.       case "输入":
  346.         const texts = ["Hello", "AIWork", "Automation", "RandomTest"];
  347.         const inputText = this.randArrayElement(texts);
  348.         printl("随机输入文本: " + inputText);
  349.         // 实际项目可添加:hid.inputSimple(inputText);
  350.         break;

  351.       case "等待":
  352.         const waitTime = this.randInt(1000, 3000);
  353.         printl("随机等待: " + waitTime + "ms");
  354.         // 实际项目可添加:sleep.millisecond(waitTime);
  355.         break;
  356.     }
  357.   },

  358.   /**
  359.    * simulateRandomError - 模拟随机错误(10%概率)
  360.    * @returns {boolean} 操作是否成功(true=成功,false=错误)
  361.    */
  362.   simulateRandomError() {
  363.     if (this.randBoolWithProbability(0.1)) {
  364.       printl("[错误模拟] 操作失败(10%概率触发)");
  365.       return false;
  366.     }
  367.     printl("[错误模拟] 操作成功");
  368.     return true;
  369.   },

  370.   /**
  371.    * lottery - 随机抽奖(公平洗牌后取前N名)
  372.    * @param {Array} participants - 参与人员列表
  373.    * @param {number} prizeCount - 奖品数量
  374.    * @returns {Array} 中奖人员列表
  375.    */
  376.   lottery(participants, prizeCount) {
  377.     printl("=== 随机抽奖(参与人数:" + participants.length + ",奖品数:" + prizeCount + ")===");
  378.     const shuffled = this.shuffle(participants);
  379.     const winners = shuffled.slice(0, prizeCount);
  380.     printl("中奖人员: " + winners.join(", "));
  381.     return winners;
  382.   },
  383.   
  384.   /**
  385.    * randNumber - 生成指定范围的随机整数(根据文档中的使用方式)
  386.    * @param {number} min - 最小值
  387.    * @param {number} max - 最大值
  388.    * @returns {number} 随机整数
  389.    */
  390.   randNumber(min, max) {
  391.     // 根据文档中的使用方式实现
  392.     return this.randInt(min, max);
  393.   }
  394. };


  395. // ========================== 测试示例:所有功能的使用演示 ==========================
  396. function testRandomUtils() {
  397.   // 1. 基础随机值测试
  398.   printl("=== 1. 基础随机值测试 ===");
  399.   printl("0-1随机小数: " + RandomUtils.LtUqFOGkc6(0, 1).toFixed(4));
  400.   printl("10-100随机整数: " + RandomUtils.randInt(10, 100));
  401.   printl("50%概率布尔值: " + RandomUtils.randBool());
  402.   printl("30%概率true: " + RandomUtils.randBoolWithProbability(0.3));
  403.   printl("16位随机字符: " + RandomUtils.GQGqcAlZv2(16));
  404.   printl("");

  405.   // 2. 坐标随机测试
  406.   printl("=== 2. 坐标随机测试 ===");
  407.   const clickPos = RandomUtils.randClickPosition(100, 200, 500, 800);
  408.   printl("指定区域随机坐标: " + JSON.stringify(clickPos));
  409.   printl("");

  410.   // 3. 数组随机测试
  411.   printl("=== 3. 数组随机测试 ===");
  412.   const fruits = ["苹果", "香蕉", "橙子", "葡萄", "草莓"];
  413.   printl("随机选1个水果: " + RandomUtils.randArrayElement(fruits));
  414.   printl("随机选3个水果(不重复): " + JSON.stringify(RandomUtils.randArrayElements(fruits, 3)));
  415.   const numbers = [1, 2, 3, 4, 5];
  416.   printl("数组洗牌(新数组): " + JSON.stringify(RandomUtils.shuffle(numbers)));
  417.   printl("原数组是否不变: " + JSON.stringify(numbers)); // [1,2,3,4,5](未修改)
  418.   RandomUtils.shuffleInPlace(numbers);
  419.   printl("数组原地洗牌(修改原数组): " + JSON.stringify(numbers));
  420.   printl("");

  421.   // 4. 日期随机测试
  422.   printl("=== 4. 日期随机测试 ===");
  423.   const startDate = new Date(2020, 0, 1); // 2020-01-01
  424.   const endDate = new Date(2025, 11, 31); // 2025-12-31
  425.   printl("随机生日(1980-2005): " + RandomUtils.randomDateString(
  426.     new Date(1980, 0, 1),
  427.     new Date(2005, 11, 31),
  428.     "yyyy-MM-dd"
  429.   ));
  430.   printl("随机日志时间(近7天): " + RandomUtils.randomDateString(
  431.     new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
  432.     new Date(),
  433.     "yyyy-MM-dd HH:mm:ss.SSS"
  434.   ));
  435.   printl("");

  436.   // 5. 颜色随机测试
  437.   printl("=== 5. 颜色随机测试 ===");
  438.   printl("随机十六进制颜色: " + RandomUtils.randomColor());
  439.   printl("随机RGB颜色: " + JSON.stringify(RandomUtils.randomRGBColor()));
  440.   printl("随机RGBA颜色: " + JSON.stringify(RandomUtils.randomRGBAColor()));
  441.   printl("随机HSL颜色: " + JSON.stringify(RandomUtils.randomHSLColor()));
  442.   printl("柔和颜色: " + RandomUtils.generateRandomSoftColor());
  443.   printl("");

  444.   // 6. UUID测试
  445.   printl("=== 6. UUID测试 ===");
  446.   printl("标准UUID: " + RandomUtils.randomUUID());
  447.   printl("32位简化UUID: " + RandomUtils.simpleUUID());
  448.   printl("设备ID(UUID): " + RandomUtils.randomUUID());
  449.   printl("");

  450.   // 7. 密码验证码测试
  451.   printl("=== 7. 密码验证码测试 ===");
  452.   printl("12位复杂密码(全字符): " + RandomUtils.randomPassword(12, true, true, true, true));
  453.   printl("6位短信验证码(纯数字): " + RandomUtils.randomNumericCode(6));
  454.   printl("4位图形验证码(大小写): " + RandomUtils.randomAlphaCode(4, true));
  455.   printl("6位混合验证码(数字+大写字母): " + RandomUtils.randomVerificationCode(6));
  456.   printl("");

  457.   // 8. 综合模拟测试
  458.   printl("=== 8. 综合模拟测试 ===");
  459.   RandomUtils.simulateRandomUserActions();
  460.   RandomUtils.simulateRandomError();
  461.   RandomUtils.lottery(["用户A", "用户B", "用户C", "用户D", "用户E"], 2);
  462.   printl("");

  463.   printl("=== 所有测试完成 ===");
  464. }

  465. // 执行测试
  466. testRandomUtils();
复制代码







欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2