AIWROK软件苹果IOS系统随机数[RJrxn1afZqW7yjf2NK]方法小结
AIWROK软件苹果IOS系统随机数方法小结// ... existing code ...
/*
🍎交流QQ群711841924群一,苹果内测群,528816639
🍎🔨LtUqFOGkc6随机小数生成函数
*/
// 🔨LtUqFOGkc6随机小数生成函数
// 📌LtUqFOGkc6随机小数生成函数
/*
类别 详情说明
方法功能 生成指定范围内的随机小数
方法签名 Double LtUqFOGkc6(Double min, Double max)
返回值 Double(生成的随机小数)
参数 - Double min:随机小数的最小值
- Double max:随机小数的最大值
*/
function LtUqFOGkc6(min, max) {
return Math.random() * (max - min) + min;
}
// 📌随机点击位置生成函数(修复版本)
/*
类别 详情说明
方法功能 在指定区域内生成随机点击坐标
方法签名 Object randClickPosition(Double left, Double top, Double right, Double bottom)
返回值 Object(包含x和y坐标的对象)
参数 - Double left:区域左边界
- Double top:区域上边界
- Double right:区域右边界
- Double bottom:区域下边界
*/
function randClickPosition(left, top, right, bottom) {
var x = LtUqFOGkc6(left, right);
var y = LtUqFOGkc6(top, bottom);
return {x: x, y: y};
}
// 使用示例:
printl("=== LtUqFOGkc6随机小数函数使用示例 ===");
// 生成0到1之间的随机小数
var randomDecimal1 = LtUqFOGkc6(0, 1);
printl("生成0-1之间的随机小数: " + randomDecimal1);
// 生成10到100之间的随机小数
var randomDecimal2 = LtUqFOGkc6(10, 100);
printl("生成10-100之间的随机小数: " + randomDecimal2);
// 生成随机延迟时间(1.5秒到3.5秒之间)
var delayTime = LtUqFOGkc6(1.5, 3.5);
printl("生成随机延迟时间: " + delayTime + "秒");
// 在点击操作中使用随机小数作为坐标
var x = LtUqFOGkc6(100.0, 500.0);
var y = LtUqFOGkc6(200.0, 800.0);
printl("生成随机坐标: (" + x + ", " + y + ")");
// 使用修复后的随机点击位置函数
var clickPos = randClickPosition(100.0, 200.0, 500.0, 800.0);
printl("生成随机点击位置: (" + clickPos.x + ", " + clickPos.y + ")");
// 更多随机数相关函数示例:
// 📌随机整数生成函数
/*
类别 详情说明
方法功能 生成指定范围内的随机整数
方法签名 Int32 randInt(Int32 min, Int32 max)
返回值 Int32(生成的随机整数)
参数 - Int32 min:随机整数的最小值
- Int32 max:随机整数的最大值
*/
function randInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// 📌随机布尔值生成函数
/*
类别 详情说明
方法功能 生成随机布尔值(true/false)
方法签名 Boolean randBool()
返回值 Boolean(生成的随机布尔值)
参数 无
*/
function randBool() {
return Math.random() < 0.5;
}
// 📌随机数组元素选择函数
/*
类别 详情说明
方法功能 从数组中随机选择一个元素
方法签名 Object randChoice(Array arr)
返回值 Object(数组中的随机元素)
参数 - Array arr:源数组
*/
function randChoice(arr) {
if (!arr || arr.length === 0) return null;
var index = randInt(0, arr.length - 1);
return arr;
}
// 📌随机颜色生成函数
/*
类别 详情说明
方法功能 生成随机颜色值
方法签名 String randColor()
返回值 String(十六进制颜色值)
参数 无
*/
function randColor() {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters;
}
return color;
}
// 使用示例:
printl("=== 更多随机数方法使用示例 ===");
// 随机整数示例
var randomInteger = randInt(1, 100);
printl("生成1-100之间的随机整数: " + randomInteger);
// 随机布尔值示例
var randomBoolean = randBool();
printl("生成随机布尔值: " + randomBoolean);
// 随机数组元素示例
var fruits = ["苹果", "香蕉", "橙子", "葡萄", "草莓"];
var randomFruit = randChoice(fruits);
printl("从数组中随机选择: " + randomFruit);
// 随机颜色示例
var randomColor = randColor();
printl("生成随机颜色: " + randomColor);
// 综合应用示例:模拟用户随机操作
function simulateRandomUserActions() {
printl("=== 模拟用户随机操作 ===");
// 随机决定执行哪种操作
var actions = ["点击", "滑动", "输入", "等待"];
var action = randChoice(actions);
switch(action) {
case "点击":
var pos = randClickPosition(0, 0, screen.getScreenWidth(), screen.getScreenHeight());
printl("随机点击屏幕位置: (" + pos.x + ", " + pos.y + ")");
// hid.click(pos.x, pos.y); // 实际点击操作
break;
case "滑动":
var startPos = randClickPosition(100, 100, 400, 600);
var endPos = randClickPosition(100, 100, 400, 600);
printl("随机滑动从: (" + startPos.x + ", " + startPos.y + ") 到 (" + endPos.x + ", " + endPos.y + ")");
// hid.swip(startPos.x, startPos.y, endPos.x, endPos.y, 50, 500, 1); // 实际滑动操作
break;
case "输入":
var texts = ["Hello", "World", "AIWork", "Automation"];
var text = randChoice(texts);
printl("随机输入文本: " + text);
// hid.inputSimple(text); // 实际输入操作
break;
case "等待":
var waitTime = randInt(1000, 3000);
printl("随机等待: " + waitTime + "毫秒");
// sleep.millisecond(waitTime); // 实际等待操作
break;
}
}
// 执行模拟示例
simulateRandomUserActions();
printl("=== 随机数方法示例结束 ===");
// ... 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));
📌WBJqf91s7J随机整数
类别详情
功能描述随机整数
方法声明Int32 WBJqf91s7J(Int32, Int32)
返回值类型Int32
参数说明Int32:起始;Int32:结束
调用案例rand.randNumber(1000,9999)
📌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 类似)
📌随机布尔值生成函数
类别详情说明
函数名称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 ("跳过网络请求");
}
}
📌随机数组元素选择函数
类别
详情说明
函数名称
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 = [ , // 左上角区域 , // 右上角区域 , // 左下角区域 , // 右下角区域 // 中心区域 ]; 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; }
从不同数组中随机选择数据组合成测试用户信息
📌随机日期
类别
详情说明
函数名称
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;
}
📌随机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 生成设备唯一标识符
生成会话 IDfunction generateSessionId() {
var sessionId = randomUUID();
printl ("生成会话 ID:" + sessionId);
return sessionId;
}使用标准 UUID 生成用户会话唯一标识
生成事务 IDfunction generateTransactionId() {
var transactionId = simpleUUID();
printl ("生成事务 ID:" + transactionId);
return transactionId;
}使用简单 UUID 生成交易事务唯一标识
生成 API 请求 IDfunction 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 生成密码重置链接中的唯一令牌,确保安全性
📌随机密码 / 验证码随机密码 / 验证码生成函数及使用说明函数说明表
类别详情说明
函数名称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 = 仅大写字母)
使用示例表
应用场景示例代码说明
生成复杂密码(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 位包含大小写、数字、特殊符号的盐值(用于密码加密存储)
📌随机数组排序(洗牌算法)函数说明表
类别详情说明
函数名称shuffle
方法功能使用Fisher-Yates 洗牌算法对数组进行随机排序,生成新数组(不修改原数组)
方法签名Array shuffle(Array array)
返回值Array(随机排序后的新数组)
参数- Array array:需要随机排序的源数组
函数名称shuffleInPlace
方法功能使用Fisher-Yates 洗牌算法对数组进行原地随机排序(直接修改原数组)
方法签名Void shuffleInPlace(Array array)
返回值Void(无返回值,排序后结果直接作用于输入数组)
参数- Array array:需要随机排序的源数组(将被直接修改)
使用示例表
应用场景示例代码说明
基本洗牌示例(不修改原数组)var numbers = ;
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 = shuffledTasks;
}
printl ("随机任务分配结果:");
for (var person in assignments) {
printl(" " + person + " -> " + assignments);
}
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);打乱游戏房间顺序,生成随机地图路径,提升游戏可玩性
多个例子全部集合在一起:
/**
* 随机数工具类 - 整合所有随机相关功能
* 包含:基础随机值、坐标、数组、日期、颜色、UUID、密码验证码、洗牌算法等
* 交流QQ群:711841924(苹果内测群一)、528816639
*/
const RandomUtils = {
// ========================== 1. 基础随机值生成 ==========================
/**
* LtUqFOGkc6 - 生成指定范围的随机小数
* @param {number} min - 最小值(包含)
* @param {number} max - 最大值(包含)
* @returns {number} 随机小数
*/
LtUqFOGkc6(min, max) {
return Math.random() * (max - min) + min;
},
/**
* randInt / WBJqf91s7J - 生成指定范围的随机整数(两个函数功能一致,统一实现)
* @param {number} min - 最小值(包含)
* @param {number} max - 最大值(包含)
* @returns {number} 随机整数
*/
randInt(min, max) {
// 修正:确保参数是整数并正确处理边界
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
},
WBJqf91s7J: function (min, max) { // 兼容原命名
return this.randInt(min, max);
},
/**
* randBool - 生成 50% 概率的随机布尔值
* @returns {boolean} true/false
*/
randBool() {
return Math.random() < 0.5;
},
/**
* randBoolWithProbability - 按指定概率生成布尔值
* @param {number} probability - 返回 true 的概率(0.0 ~ 1.0)
* @returns {boolean} 按概率生成的布尔值
*/
randBoolWithProbability(probability) {
// 边界值处理:确保概率在合法范围
probability = Math.max(0, Math.min(1, probability));
return Math.random() < probability;
},
/**
* GQGqcAlZv2 - 生成指定长度的随机字符(字母+数字)
* @param {number} length - 字符长度(正整数)
* @returns {string} 随机字符串
*/
GQGqcAlZv2(length) {
if (length <= 0) return "";
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
let result = "";
for (let i = 0; i < length; i++) {
const randomIndex = this.randInt(0, chars.length - 1);
result += chars;
}
return result;
},
// ========================== 2. 坐标与区域随机 ==========================
/**
* randClickPosition - 在指定区域内生成随机点击坐标
* @param {number} left - 左边界
* @param {number} top - 上边界
* @param {number} right - 右边界
* @param {number} bottom - 下边界
* @returns {Object} 包含 x/y 坐标的对象
*/
randClickPosition(left, top, right, bottom) {
const x = this.LtUqFOGkc6(left, right);
const y = this.LtUqFOGkc6(top, bottom);
return { x: Number(x.toFixed(2)), y: Number(y.toFixed(2)) }; // 保留2位小数,避免精度冗余
},
// ========================== 3. 数组随机操作 ==========================
/**
* randArrayElement / randChoice - 从数组随机选择1个元素(兼容原命名)
* @param {Array} arr - 源数组
* @returns {any|null} 随机元素(数组为空时返回null)
*/
randArrayElement(arr) {
if (!Array.isArray(arr) || arr.length === 0) return null;
const index = this.randInt(0, arr.length - 1);
return arr;
},
randChoice: function (arr) {
return this.randArrayElement(arr);
},
/**
* randArrayElements - 从数组随机选择指定数量的元素(不重复)
* @param {Array} arr - 源数组
* @param {number} count - 选择数量
* @returns {Array} 随机元素数组(数量不足时返回所有元素)
*/
randArrayElements(arr, count) {
if (!Array.isArray(arr) || arr.length === 0) return [];
// 复制数组避免修改原数组,再用洗牌算法截取
const copyArr = [...arr];
this.shuffleInPlace(copyArr);
return copyArr.slice(0, Math.min(count, arr.length));
},
/**
* shuffle - Fisher-Yates洗牌算法(生成新数组,不修改原数组)
* @param {Array} arr - 源数组
* @returns {Array} 随机排序后的新数组
*/
shuffle(arr) {
if (!Array.isArray(arr)) return [];
const copyArr = [...arr];
this.shuffleInPlace(copyArr);
return copyArr;
},
/**
* shuffleInPlace - Fisher-Yates洗牌算法(原地排序,修改原数组)
* @param {Array} arr - 源数组(将被直接修改)
*/
shuffleInPlace(arr) {
if (!Array.isArray(arr)) return;
for (let i = arr.length - 1; i > 0; i--) {
const j = this.randInt(0, i);
// 交换元素
, arr] = , arr];
}
},
// ========================== 4. 日期随机生成 ==========================
/**
* formatDate - 日期格式化工具
* @param {Date} date - 日期对象
* @param {string} format - 格式(如 "yyyy-MM-dd"、"yyyy/MM/dd HH:mm:ss")
* @returns {string} 格式化后的日期字符串
*/
formatDate(date, format) {
if (!(date instanceof Date)) return "";
const pad = (num) => num.toString().padStart(2, "0"); // 补零函数
return format.replace(/yyyy/g, date.getFullYear())
.replace(/MM/g, pad(date.getMonth() + 1)) // 月份0-11,需+1
.replace(/dd/g, pad(date.getDate()))
.replace(/HH/g, pad(date.getHours()))
.replace(/mm/g, pad(date.getMinutes()))
.replace(/ss/g, pad(date.getSeconds()))
.replace(/SSS/g, pad(date.getMilliseconds()).padStart(3, "0"));
},
/**
* randomDate - 生成指定范围的随机日期对象
* @param {Date} startDate - 开始日期
* @param {Date} endDate - 结束日期
* @returns {Date} 随机日期
*/
randomDate(startDate, endDate) {
if (!(startDate instanceof Date) || !(endDate instanceof Date)) {
throw new Error("参数必须是Date对象");
}
const startTime = startDate.getTime();
const endTime = endDate.getTime();
const randomTime = this.LtUqFOGkc6(startTime, endTime);
return new Date(randomTime);
},
/**
* randomDateString - 生成指定格式的随机日期字符串
* @param {Date} startDate - 开始日期
* @param {Date} endDate - 结束日期
* @param {string} format - 日期格式
* @returns {string} 格式化后的随机日期
*/
randomDateString(startDate, endDate, format) {
const randomDate = this.randomDate(startDate, endDate);
return this.formatDate(randomDate, format);
},
// ========================== 5. 颜色随机生成 ==========================
/**
* randomColor - 生成随机十六进制颜色(#RRGGBB)
* @returns {string} 十六进制颜色值
*/
randomColor() {
const letters = "0123456789ABCDEF";
let color = "#";
for (let i = 0; i < 6; i++) {
color += letters;
}
return color;
},
/**
* randomRGBColor - 生成随机RGB颜色
* @returns {Object} { r: 0-255, g: 0-255, b: 0-255 }
*/
randomRGBColor() {
return {
r: this.randInt(0, 255),
g: this.randInt(0, 255),
b: this.randInt(0, 255)
};
},
/**
* randomRGBAColor - 生成随机RGBA颜色
* @returns {Object} { r: 0-255, g: 0-255, b: 0-255, a: 0.00-1.00 }
*/
randomRGBAColor() {
return {
...this.randomRGBColor(),
a: Number(this.LtUqFOGkc6(0, 1).toFixed(2))
};
},
/**
* randomHSLColor - 生成随机HSL颜色
* @returns {Object} { h: 0-360, s: 0-100%, l: 0-100% }
*/
randomHSLColor() {
return {
h: this.randInt(0, 360),
s: `${this.randInt(0, 100)}%`,
l: `${this.randInt(0, 100)}%`
};
},
/**
* generateRandomSoftColor - 生成低饱和度柔和颜色(HSL格式)
* @returns {string} HSL颜色字符串(如 "hsl(120, 20%, 50%)")
*/
generateRandomSoftColor() {
const h = this.randInt(0, 360);
const s = this.randInt(0, 30); // 0-30% 饱和度(柔和)
const l = this.randInt(30, 70); // 30-70% 亮度(不暗不亮)
return `hsl(${h}, ${s}%, ${l}%)`;
},
// ========================== 6. UUID 生成 ==========================
/**
* randomUUID - 生成标准UUID(格式:xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx)
* @returns {string} 标准UUID字符串
*/
randomUUID() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(//g, (c) => {
const r = this.randInt(0, 15); // 修正:使用整数随机数而不是小数
const v = c === 'x' ? r : (r & 0x3 | 0x8); // y位固定为 0100 或 1000
return v.toString(16);
});
},
/**
* simpleUUID - 生成32位简化UUID(无连字符,仅字母+数字)
* @returns {string} 32位UUID字符串
*/
simpleUUID() {
return this.randomUUID().replace(/-/g, '');
},
// ========================== 7. 密码与验证码生成 ==========================
/**
* randomPassword - 自定义复杂度的随机密码
* @param {number} length - 密码长度
* @param {boolean} includeUppercase - 是否包含大写字母
* @param {boolean} includeLowercase - 是否包含小写字母
* @param {boolean} includeNumbers - 是否包含数字
* @param {boolean} includeSymbols - 是否包含特殊符号(!@#$%^&*()_+-=[]{};:,.<>?)
* @returns {string} 随机密码
*/
randomPassword(length, includeUppercase, includeLowercase, includeNumbers, includeSymbols) {
if (length <= 0) return "";
// 定义字符集
let chars = "";
if (includeUppercase) chars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (includeLowercase) chars += "abcdefghijklmnopqrstuvwxyz";
if (includeNumbers) chars += "0123456789";
if (includeSymbols) chars += "!@#$%^&*()_+-=[]{};:,.<>?";
// 兜底:若未选任何字符集,默认字母+数字
if (chars === "") chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
let password = "";
for (let i = 0; i < length; i++) {
password += chars;
}
return password;
},
/**
* randomVerificationCode - 混合验证码(数字+大写字母)
* @param {number} length - 验证码长度
* @returns {string} 混合验证码
*/
randomVerificationCode(length) {
// 修正:根据函数描述,应该是数字+大写字母
if (length <= 0) return "";
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
let result = "";
for (let i = 0; i < length; i++) {
result += chars;
}
return result;
},
/**
* randomNumericCode - 纯数字验证码
* @param {number} length - 验证码长度
* @returns {string} 纯数字验证码
*/
randomNumericCode(length) {
if (length <= 0) return "";
const chars = "0123456789";
let result = "";
for (let i = 0; i < length; i++) {
result += chars;
}
return result;
},
/**
* randomAlphaCode - 纯字母验证码
* @param {number} length - 验证码长度
* @param {boolean} caseSensitive - 是否区分大小写(true=混合,false=仅大写)
* @returns {string} 纯字母验证码
*/
randomAlphaCode(length, caseSensitive) {
if (length <= 0) return "";
let chars = "";
if (caseSensitive) {
// 区分大小写,混合大小写字母
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
} else {
// 不区分大小写,仅大写字母
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
}
let result = "";
for (let i = 0; i < length; i++) {
result += chars;
}
return result;
},
// ========================== 8. 综合模拟 ==========================
/**
* simulateRandomUserActions - 模拟用户随机操作(点击/滑动/输入/等待)
*/
simulateRandomUserActions() {
printl("=== 模拟用户随机操作 ==="); // 修正:使用printl而不是console.log
const actions = ["点击", "滑动", "输入", "等待"];
const action = this.randArrayElement(actions);
switch (action) {
case "点击":
const clickPos = this.randClickPosition(0, 0, 1920, 1080); // 假设屏幕1920x1080
printl("随机点击屏幕位置: (" + clickPos.x + ", " + clickPos.y + ")");
// 实际项目可添加:hid.click(clickPos.x, clickPos.y);
break;
case "滑动":
const startPos = this.randClickPosition(100, 100, 400, 600);
const endPos = this.randClickPosition(100, 100, 400, 600);
printl("随机滑动: (" + startPos.x + ", " + startPos.y + ") → (" + endPos.x + ", " + endPos.y + ")");
// 实际项目可添加:hid.swip(startPos.x, startPos.y, endPos.x, endPos.y, 500);
break;
case "输入":
const texts = ["Hello", "AIWork", "Automation", "RandomTest"];
const inputText = this.randArrayElement(texts);
printl("随机输入文本: " + inputText);
// 实际项目可添加:hid.inputSimple(inputText);
break;
case "等待":
const waitTime = this.randInt(1000, 3000);
printl("随机等待: " + waitTime + "ms");
// 实际项目可添加:sleep.millisecond(waitTime);
break;
}
},
/**
* simulateRandomError - 模拟随机错误(10%概率)
* @returns {boolean} 操作是否成功(true=成功,false=错误)
*/
simulateRandomError() {
if (this.randBoolWithProbability(0.1)) {
printl("[错误模拟] 操作失败(10%概率触发)");
return false;
}
printl("[错误模拟] 操作成功");
return true;
},
/**
* lottery - 随机抽奖(公平洗牌后取前N名)
* @param {Array} participants - 参与人员列表
* @param {number} prizeCount - 奖品数量
* @returns {Array} 中奖人员列表
*/
lottery(participants, prizeCount) {
printl("=== 随机抽奖(参与人数:" + participants.length + ",奖品数:" + prizeCount + ")===");
const shuffled = this.shuffle(participants);
const winners = shuffled.slice(0, prizeCount);
printl("中奖人员: " + winners.join(", "));
return winners;
},
/**
* randNumber - 生成指定范围的随机整数(根据文档中的使用方式)
* @param {number} min - 最小值
* @param {number} max - 最大值
* @returns {number} 随机整数
*/
randNumber(min, max) {
// 根据文档中的使用方式实现
return this.randInt(min, max);
}
};
// ========================== 测试示例:所有功能的使用演示 ==========================
function testRandomUtils() {
// 1. 基础随机值测试
printl("=== 1. 基础随机值测试 ===");
printl("0-1随机小数: " + RandomUtils.LtUqFOGkc6(0, 1).toFixed(4));
printl("10-100随机整数: " + RandomUtils.randInt(10, 100));
printl("50%概率布尔值: " + RandomUtils.randBool());
printl("30%概率true: " + RandomUtils.randBoolWithProbability(0.3));
printl("16位随机字符: " + RandomUtils.GQGqcAlZv2(16));
printl("");
// 2. 坐标随机测试
printl("=== 2. 坐标随机测试 ===");
const clickPos = RandomUtils.randClickPosition(100, 200, 500, 800);
printl("指定区域随机坐标: " + JSON.stringify(clickPos));
printl("");
// 3. 数组随机测试
printl("=== 3. 数组随机测试 ===");
const fruits = ["苹果", "香蕉", "橙子", "葡萄", "草莓"];
printl("随机选1个水果: " + RandomUtils.randArrayElement(fruits));
printl("随机选3个水果(不重复): " + JSON.stringify(RandomUtils.randArrayElements(fruits, 3)));
const numbers = ;
printl("数组洗牌(新数组): " + JSON.stringify(RandomUtils.shuffle(numbers)));
printl("原数组是否不变: " + JSON.stringify(numbers)); // (未修改)
RandomUtils.shuffleInPlace(numbers);
printl("数组原地洗牌(修改原数组): " + JSON.stringify(numbers));
printl("");
// 4. 日期随机测试
printl("=== 4. 日期随机测试 ===");
const startDate = new Date(2020, 0, 1); // 2020-01-01
const endDate = new Date(2025, 11, 31); // 2025-12-31
printl("随机生日(1980-2005): " + RandomUtils.randomDateString(
new Date(1980, 0, 1),
new Date(2005, 11, 31),
"yyyy-MM-dd"
));
printl("随机日志时间(近7天): " + RandomUtils.randomDateString(
new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
new Date(),
"yyyy-MM-dd HH:mm:ss.SSS"
));
printl("");
// 5. 颜色随机测试
printl("=== 5. 颜色随机测试 ===");
printl("随机十六进制颜色: " + RandomUtils.randomColor());
printl("随机RGB颜色: " + JSON.stringify(RandomUtils.randomRGBColor()));
printl("随机RGBA颜色: " + JSON.stringify(RandomUtils.randomRGBAColor()));
printl("随机HSL颜色: " + JSON.stringify(RandomUtils.randomHSLColor()));
printl("柔和颜色: " + RandomUtils.generateRandomSoftColor());
printl("");
// 6. UUID测试
printl("=== 6. UUID测试 ===");
printl("标准UUID: " + RandomUtils.randomUUID());
printl("32位简化UUID: " + RandomUtils.simpleUUID());
printl("设备ID(UUID): " + RandomUtils.randomUUID());
printl("");
// 7. 密码验证码测试
printl("=== 7. 密码验证码测试 ===");
printl("12位复杂密码(全字符): " + RandomUtils.randomPassword(12, true, true, true, true));
printl("6位短信验证码(纯数字): " + RandomUtils.randomNumericCode(6));
printl("4位图形验证码(大小写): " + RandomUtils.randomAlphaCode(4, true));
printl("6位混合验证码(数字+大写字母): " + RandomUtils.randomVerificationCode(6));
printl("");
// 8. 综合模拟测试
printl("=== 8. 综合模拟测试 ===");
RandomUtils.simulateRandomUserActions();
RandomUtils.simulateRandomError();
RandomUtils.lottery(["用户A", "用户B", "用户C", "用户D", "用户E"], 2);
printl("");
printl("=== 所有测试完成 ===");
}
// 执行测试
testRandomUtils();
页:
[1]