信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 1|回复: 0
打印 上一主题 下一主题

[宣传软件网站动态] AIWROK软件脚本JSON转换示例

[复制链接]

1918

主题

1928

帖子

1万

积分

积分
11230
跳转到指定楼层
宣传软件楼主
发表于 18 分钟前 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

资讯缩略图:

资讯发布日期:2026-05-15

资讯发布简介:AIWROK软件脚本JSON转换示例

资讯关键词:AIWROK软件脚本JSON转换示例

资讯所属分类:IT资讯 

联系:

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件网站分类目录 网址:http://www.postbbs.com/

资讯详细描述
AIWROK软件脚本JSON转换示例
AIWROK软件脚本JSON转换示例 b2b软件

  1. // AIWROK 实用工具集 - 完整示例 (ES5 兼容)
  2. // 包含:文件操作、网络请求、数据处理、UI交互等实用功能
  3. // ES5系统安卓 JavaScript引擎Rhino     
  4. //🍎交流QQ群711841924群一,苹果内测群,528816639


  5. // ==================== 1. 文件系统管理工具 ====================
  6. printl("=== 1. 文件系统管理工具 ===");

  7. function FileManager() {
  8.     this.basePath = '/sdcard/AIWROK/';
  9. }

  10. FileManager.prototype.createDirectory = function(path) {
  11.     try {
  12.         var fullPath = this.basePath + path;
  13.         // 模拟创建目录
  14.         printl("创建目录: " + fullPath);
  15.         return true;
  16.     } catch (e) {
  17.         printl("创建目录失败: " + e);
  18.         return false;
  19.     }
  20. };

  21. FileManager.prototype.writeFile = function(filename, content) {
  22.     try {
  23.         var fullPath = this.basePath + filename;
  24.         // 模拟写入文件
  25.         printl("写入文件: " + fullPath);
  26.         printl("内容长度: " + content.length);
  27.         return true;
  28.     } catch (e) {
  29.         printl("写入文件失败: " + e);
  30.         return false;
  31.     }
  32. };

  33. FileManager.prototype.readFile = function(filename) {
  34.     try {
  35.         var fullPath = this.basePath + filename;
  36.         // 模拟读取文件
  37.         printl("读取文件: " + fullPath);
  38.         return "模拟文件内容: " + filename;
  39.     } catch (e) {
  40.         printl("读取文件失败: " + e);
  41.         return null;
  42.     }
  43. };

  44. FileManager.prototype.listDirectory = function(path) {
  45.     try {
  46.         var fullPath = this.basePath + path;
  47.         // 模拟列出目录内容
  48.         printl("列出目录: " + fullPath);
  49.         return ['file1.txt', 'file2.json', 'subdir'];
  50.     } catch (e) {
  51.         printl("列出目录失败: " + e);
  52.         return [];
  53.     }
  54. };

  55. var fileManager = new FileManager();
  56. printl("FileManager实例已创建");

  57. // 演示文件操作
  58. fileManager.createDirectory('projects');
  59. fileManager.createDirectory('backups');
  60. fileManager.writeFile('config.json', '{"theme": "dark", "version": "1.0"}');
  61. fileManager.readFile('config.json');
  62. fileManager.listDirectory('projects');

  63. sleep.second(2); // 2秒延时

  64. // ==================== 2. 网络请求管理器 ====================
  65. printl("");
  66. printl("=== 2. 网络请求管理器 ===");

  67. function HttpClient() {
  68.     this.baseUrl = 'https://api.example.com';
  69.     this.headers = {
  70.         'Content-Type': 'application/json',
  71.         'User-Agent': 'AIWROK-Client/1.0'
  72.     };
  73. }

  74. HttpClient.prototype.get = function(endpoint, params) {
  75.     params = params || {};
  76.     var url = this.baseUrl + endpoint;
  77.    
  78.     // 添加查询参数
  79.     var queryString = '';
  80.     for (var key in params) {
  81.         if (params.hasOwnProperty(key)) {
  82.             queryString += (queryString ? '&' : '?') + key + '=' + encodeURIComponent(params[key]);
  83.         }
  84.     }
  85.    
  86.     printl("GET请求: " + (url + queryString));
  87.     printl("Headers: " + JSON.stringify(this.headers));
  88.    
  89.     // 模拟响应
  90.     return {
  91.         status: 200,
  92.         data: { message: '成功获取数据', endpoint: endpoint },
  93.         headers: { 'content-type': 'application/json' }
  94.     };
  95. };

  96. HttpClient.prototype.post = function(endpoint, data) {
  97.     var url = this.baseUrl + endpoint;
  98.    
  99.     printl("POST请求: " + url);
  100.     printl("请求数据: " + JSON.stringify(data));
  101.     printl("Headers: " + JSON.stringify(this.headers));
  102.    
  103.     // 模拟响应
  104.     return {
  105.         status: 201,
  106.         data: { message: '数据创建成功', id: Math.floor(Math.random() * 1000) },
  107.         headers: { 'content-type': 'application/json' }
  108.     };
  109. };

  110. HttpClient.prototype.put = function(endpoint, data) {
  111.     var url = this.baseUrl + endpoint;
  112.    
  113.     printl("PUT请求: " + url);
  114.     printl("更新数据: " + JSON.stringify(data));
  115.    
  116.     // 模拟响应
  117.     return {
  118.         status: 200,
  119.         data: { message: '数据更新成功' },
  120.         headers: { 'content-type': 'application/json' }
  121.     };
  122. };

  123. HttpClient.prototype.delete = function(endpoint) {
  124.     var url = this.baseUrl + endpoint;
  125.    
  126.     printl("DELETE请求: " + url);
  127.    
  128.     // 模拟响应
  129.     return {
  130.         status: 200,
  131.         data: { message: '数据删除成功' },
  132.         headers: { 'content-type': 'application/json' }
  133.     };
  134. };

  135. var httpClient = new HttpClient();
  136. printl("HttpClient实例已创建");

  137. // 演示网络请求
  138. var getUserResponse = httpClient.get('/users/123', { fields: 'name,email' });
  139. printl("GET响应状态: " + getUserResponse.status);
  140. printl("GET响应数据: " + JSON.stringify(getUserResponse.data));

  141. sleep.second(2); // 2秒延时

  142. var createUserResponse = httpClient.post('/users', {
  143.     name: '张三',
  144.     email: 'zhangsan@example.com',
  145.     age: 25
  146. });
  147. printl("POST响应状态: " + createUserResponse.status);
  148. printl("POST响应数据: " + JSON.stringify(createUserResponse.data));

  149. sleep.second(2); // 2秒延时

  150. // ==================== 3. 数据验证器 ====================
  151. printl("");
  152. printl("=== 3. 数据验证器 ===");

  153. function Validator() {}

  154. Validator.isEmail = function(email) {
  155.     var re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  156.     return re.test(email);
  157. };

  158. Validator.isPhone = function(phone) {
  159.     var re = /^1[3-9]\d{9}$/;
  160.     return re.test(phone);
  161. };

  162. Validator.isURL = function(url) {
  163.     var re = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
  164.     return re.test(url);
  165. };

  166. Validator.isEmpty = function(value) {
  167.     if (value === null || value === undefined) return true;
  168.     if (typeof value === 'string') return value.trim().length === 0;
  169.     if (Array.isArray(value)) return value.length === 0;
  170.     if (typeof value === 'object') return Object.keys(value).length === 0;
  171.     return false;
  172. };

  173. Validator.isNumber = function(value) {
  174.     return typeof value === 'number' && !isNaN(value);
  175. };

  176. Validator.isBoolean = function(value) {
  177.     return typeof value === 'boolean';
  178. };

  179. Validator.validateForm = function(formData, rules) {
  180.     var errors = {};
  181.     var isValid = true;
  182.    
  183.     for (var field in rules) {
  184.         if (rules.hasOwnProperty(field)) {
  185.             var rule = rules[field];
  186.             var value = formData[field];
  187.             
  188.             if (rule.required && Validator.isEmpty(value)) {
  189.                 errors[field] = rule.message || field + '不能为空';
  190.                 isValid = false;
  191.                 continue;
  192.             }
  193.             
  194.             if (!Validator.isEmpty(value)) {
  195.                 if (rule.type === 'email' && !Validator.isEmail(value)) {
  196.                     errors[field] = rule.message || field + '格式不正确';
  197.                     isValid = false;
  198.                 } else if (rule.type === 'phone' && !Validator.isPhone(value)) {
  199.                     errors[field] = rule.message || field + '格式不正确';
  200.                     isValid = false;
  201.                 } else if (rule.type === 'url' && !Validator.isURL(value)) {
  202.                     errors[field] = rule.message || field + '格式不正确';
  203.                     isValid = false;
  204.                 } else if (rule.minLength && value.length < rule.minLength) {
  205.                     errors[field] = rule.message || field + '长度不能少于' + rule.minLength;
  206.                     isValid = false;
  207.                 } else if (rule.maxLength && value.length > rule.maxLength) {
  208.                     errors[field] = rule.message || field + '长度不能超过' + rule.maxLength;
  209.                     isValid = false;
  210.                 }
  211.             }
  212.         }
  213.     }
  214.    
  215.     return {
  216.         isValid: isValid,
  217.         errors: errors
  218.     };
  219. };

  220. printl("Validator工具类已定义");

  221. // 演示数据验证
  222. var testData = {
  223.     email: 'test@example.com',
  224.     phone: '13800138000',
  225.     url: 'https://www.example.com',
  226.     empty: '',
  227.     number: 42,
  228.     boolean: true
  229. };

  230. printl("邮箱验证: " + Validator.isEmail(testData.email));
  231. printl("手机验证: " + Validator.isPhone(testData.phone));
  232. printl("URL验证: " + Validator.isURL(testData.url));
  233. printl("空值验证: " + Validator.isEmpty(testData.empty));
  234. printl("数字验证: " + Validator.isNumber(testData.number));
  235. printl("布尔验证: " + Validator.isBoolean(testData.boolean));

  236. sleep.second(2); // 2秒延时

  237. // 表单验证示例
  238. var formRules = {
  239.     username: { required: true, minLength: 3, maxLength: 20, message: '用户名3-20个字符' },
  240.     email: { required: true, type: 'email', message: '邮箱格式不正确' },
  241.     phone: { required: false, type: 'phone', message: '手机号格式不正确' }
  242. };

  243. var formData = {
  244.     username: 'john_doe',
  245.     email: 'john@example.com',
  246.     phone: '13800138000'
  247. };

  248. var validationResult = Validator.validateForm(formData, formRules);
  249. printl("表单验证结果: " + JSON.stringify(validationResult));

  250. sleep.second(2); // 2秒延时

  251. // ==================== 4. 缓存管理器 ====================
  252. printl("");
  253. printl("=== 4. 缓存管理器 ===");

  254. function CacheManager() {
  255.     this.cache = {};
  256.     this.ttl = {}; // time to live
  257. }

  258. CacheManager.prototype.set = function(key, value, ttlSeconds) {
  259.     ttlSeconds = ttlSeconds || 3600; // 默认1小时
  260.     this.cache[key] = value;
  261.     this.ttl[key] = Date.now() + (ttlSeconds * 1000);
  262.     printl("设置缓存: " + key + " TTL: " + ttlSeconds + " 秒");
  263. };

  264. CacheManager.prototype.get = function(key) {
  265.     if (!this.cache.hasOwnProperty(key)) {
  266.         return null;
  267.     }
  268.    
  269.     // 检查是否过期
  270.     if (Date.now() > this.ttl[key]) {
  271.         delete this.cache[key];
  272.         delete this.ttl[key];
  273.         printl("缓存已过期: " + key);
  274.         return null;
  275.     }
  276.    
  277.     printl("获取缓存: " + key);
  278.     return this.cache[key];
  279. };

  280. CacheManager.prototype.remove = function(key) {
  281.     if (this.cache.hasOwnProperty(key)) {
  282.         delete this.cache[key];
  283.         delete this.ttl[key];
  284.         printl("删除缓存: " + key);
  285.         return true;
  286.     }
  287.     return false;
  288. };

  289. CacheManager.prototype.clear = function() {
  290.     this.cache = {};
  291.     this.ttl = {};
  292.     printl("清空所有缓存");
  293. };

  294. CacheManager.prototype.size = function() {
  295.     return Object.keys(this.cache).length;
  296. };

  297. CacheManager.prototype.has = function(key) {
  298.     return this.cache.hasOwnProperty(key) && Date.now() <= this.ttl[key];
  299. };

  300. var cacheManager = new CacheManager();
  301. printl("CacheManager实例已创建");

  302. // 演示缓存操作
  303. cacheManager.set('user_profile', { name: '张三', age: 25 }, 300); // 5分钟TTL
  304. cacheManager.set('app_config', { theme: 'dark', language: 'zh-CN' }, 3600); // 1小时TTL

  305. printl("缓存大小: " + cacheManager.size());
  306. printl("是否存在user_profile: " + cacheManager.has('user_profile'));

  307. var userProfile = cacheManager.get('user_profile');
  308. printl("获取用户资料: " + JSON.stringify(userProfile));

  309. sleep.second(2); // 2秒延时

  310. cacheManager.remove('user_profile');
  311. printl("删除后缓存大小: " + cacheManager.size());

  312. cacheManager.clear();
  313. printl("清空后缓存大小: " + cacheManager.size());

  314. sleep.second(2); // 2秒延时

  315. // ==================== 5. 事件总线 ====================
  316. printl("");
  317. printl("=== 5. 事件总线 ===");

  318. function EventBus() {
  319.     this.events = {};
  320. }

  321. EventBus.prototype.on = function(event, callback) {
  322.     if (!this.events[event]) {
  323.         this.events[event] = [];
  324.     }
  325.     this.events[event].push(callback);
  326.     printl("注册事件监听器: " + event);
  327. };

  328. EventBus.prototype.off = function(event, callback) {
  329.     if (!this.events[event]) return;
  330.    
  331.     if (callback) {
  332.         var index = this.events[event].indexOf(callback);
  333.         if (index > -1) {
  334.             this.events[event].splice(index, 1);
  335.         }
  336.     } else {
  337.         delete this.events[event];
  338.     }
  339.     printl("移除事件监听器: " + event);
  340. };

  341. EventBus.prototype.emit = function(event, data) {
  342.     if (!this.events[event]) return;
  343.    
  344.     printl("触发事件: " + event + " 数据: " + JSON.stringify(data));
  345.    
  346.     var callbacks = this.events[event].slice(); // 复制数组避免修改问题
  347.     for (var i = 0; i < callbacks.length; i++) {
  348.         try {
  349.             callbacks[i](data);
  350.         } catch (e) {
  351.             printl("事件回调执行错误: " + e);
  352.         }
  353.     }
  354. };

  355. EventBus.prototype.once = function(event, callback) {
  356.     var self = this;
  357.     var wrapper = function(data) {
  358.         callback(data);
  359.         self.off(event, wrapper);
  360.     };
  361.     this.on(event, wrapper);
  362.     printl("注册一次性事件监听器: " + event);
  363. };

  364. var eventBus = new EventBus();
  365. printl("EventBus实例已创建");

  366. // 演示事件系统
  367. eventBus.on('user_login', function(data) {
  368.     printl("用户登录事件处理: " + data.username);
  369. });

  370. eventBus.on('data_loaded', function(data) {
  371.     printl("数据加载完成: " + data.count + " 条记录");
  372. });

  373. eventBus.once('app_init', function(data) {
  374.     printl("应用初始化完成: " + data.version);
  375. });

  376. // 触发事件
  377. eventBus.emit('user_login', { username: 'john_doe', timestamp: new Date() });
  378. eventBus.emit('data_loaded', { count: 100, source: 'database' });
  379. eventBus.emit('app_init', { version: '1.0.0' });

  380. sleep.second(2); // 2秒延时

  381. // ==================== 6. 任务队列 ====================
  382. printl("");
  383. printl("=== 6. 任务队列 ===");

  384. function TaskQueue(concurrency) {
  385.     concurrency = concurrency || 1;
  386.     this.queue = [];
  387.     this.running = 0;
  388.     this.concurrency = concurrency;
  389.     this.results = [];
  390. }

  391. TaskQueue.prototype.add = function(task) {
  392.     this.queue.push(task);
  393.     this.process();
  394. };

  395. TaskQueue.prototype.process = function() {
  396.     var self = this;
  397.    
  398.     while (this.running < this.concurrency && this.queue.length > 0) {
  399.         var task = this.queue.shift();
  400.         this.running++;
  401.         
  402.         // 异步执行任务
  403.         (function(currentTask, taskId) {
  404.             setTimeout(function() {
  405.                 try {
  406.                     var result = currentTask();
  407.                     self.results.push({ id: taskId, result: result, success: true });
  408.                     printl("任务完成: " + taskId);
  409.                 } catch (e) {
  410.                     self.results.push({ id: taskId, error: e.toString(), success: false });
  411.                     printl("任务失败: " + taskId + " " + e.toString());
  412.                 } finally {
  413.                     self.running--;
  414.                     self.process(); // 处理下一个任务
  415.                 }
  416.             }, 100); // 模拟异步延迟
  417.         })(task, this.results.length + 1);
  418.     }
  419. };

  420. TaskQueue.prototype.getResults = function() {
  421.     return this.results;
  422. };

  423. TaskQueue.prototype.clear = function() {
  424.     this.queue = [];
  425.     this.results = [];
  426.     this.running = 0;
  427. };

  428. var taskQueue = new TaskQueue(2); // 并发度为2
  429. printl("TaskQueue实例已创建,并发度: " + taskQueue.concurrency);

  430. // 添加任务
  431. taskQueue.add(function() {
  432.     printl("执行任务1: 数据清洗");
  433.     return { processed: 100, cleaned: 95 };
  434. });

  435. taskQueue.add(function() {
  436.     printl("执行任务2: 图片压缩");
  437.     return { originalSize: '2MB', compressedSize: '500KB' };
  438. });

  439. taskQueue.add(function() {
  440.     printl("执行任务3: 视频转码");
  441.     return { duration: '00:05:30', format: 'mp4' };
  442. });

  443. sleep.second(3); // 等待任务完成

  444. printl("任务执行结果: " + JSON.stringify(taskQueue.getResults()));

  445. sleep.second(2); // 2秒延时

  446. // ==================== 7. 配置管理器 ====================
  447. printl("");
  448. printl("=== 7. 配置管理器 ===");

  449. function ConfigManager() {
  450.     this.configs = {};
  451.     this.defaults = {};
  452. }

  453. ConfigManager.prototype.setDefault = function(key, value) {
  454.     this.defaults[key] = value;
  455.     if (!this.configs.hasOwnProperty(key)) {
  456.         this.configs[key] = value;
  457.     }
  458. };

  459. ConfigManager.prototype.set = function(key, value) {
  460.     this.configs[key] = value;
  461.     printl("设置配置: " + key + " = " + JSON.stringify(value));
  462. };

  463. ConfigManager.prototype.get = function(key) {
  464.     if (this.configs.hasOwnProperty(key)) {
  465.         return this.configs[key];
  466.     }
  467.     return this.defaults.hasOwnProperty(key) ? this.defaults[key] : null;
  468. };

  469. ConfigManager.prototype.getAll = function() {
  470.     var allConfigs = {};
  471.    
  472.     // 合并默认配置和自定义配置
  473.     for (var key in this.defaults) {
  474.         allConfigs[key] = this.defaults[key];
  475.     }
  476.     for (var key in this.configs) {
  477.         allConfigs[key] = this.configs[key];
  478.     }
  479.    
  480.     return allConfigs;
  481. };

  482. ConfigManager.prototype.reset = function(key) {
  483.     if (key) {
  484.         if (this.defaults.hasOwnProperty(key)) {
  485.             this.configs[key] = this.defaults[key];
  486.         } else {
  487.             delete this.configs[key];
  488.         }
  489.     } else {
  490.         this.configs = {};
  491.     }
  492.     printl("重置配置: " + (key || "全部"));
  493. };

  494. var configManager = new ConfigManager();
  495. printl("ConfigManager实例已创建");

  496. // 设置默认配置
  497. configManager.setDefault('theme', 'light');
  498. configManager.setDefault('language', 'en');
  499. configManager.setDefault('debug', false);

  500. // 设置自定义配置
  501. configManager.set('theme', 'dark');
  502. configManager.set('fontSize', 14);
  503. configManager.set('autoSave', true);

  504. printl("当前主题: " + configManager.get('theme'));
  505. printl("语言设置: " + configManager.get('language'));
  506. printl("字体大小: " + configManager.get('fontSize'));
  507. printl("自动保存: " + configManager.get('autoSave'));
  508. printl("调试模式: " + configManager.get('debug'));

  509. printl("所有配置: " + JSON.stringify(configManager.getAll()));

  510. sleep.second(2); // 2秒延时

  511. configManager.reset('theme');
  512. printl("重置主题后: " + configManager.get('theme'));

  513. configManager.reset();
  514. printl("重置所有配置后: " + JSON.stringify(configManager.getAll()));

  515. sleep.second(2); // 2秒延时

  516. // ==================== 8. 日志管理器 ====================
  517. printl("");
  518. printl("=== 8. 日志管理器 ===");

  519. function LogManager() {
  520.     this.logs = [];
  521.     this.maxLogs = 1000;
  522.     this.levels = {
  523.         DEBUG: 0,
  524.         INFO: 1,
  525.         WARN: 2,
  526.         ERROR: 3
  527.     };
  528.     this.currentLevel = this.levels.INFO;
  529. }

  530. LogManager.prototype.log = function(level, message, data) {
  531.     if (level < this.currentLevel) return;
  532.    
  533.     var logEntry = {
  534.         timestamp: new Date(),
  535.         level: this.getLevelName(level),
  536.         message: message,
  537.         data: data || null
  538.     };
  539.    
  540.     this.logs.push(logEntry);
  541.    
  542.     // 限制日志数量
  543.     if (this.logs.length > this.maxLogs) {
  544.         this.logs.shift();
  545.     }
  546.    
  547.     // 输出到控制台
  548.     var prefix = '[' + logEntry.timestamp.toISOString() + '] [' + logEntry.level + '] ';
  549.     printl(prefix + message);
  550.     if (data) {
  551.         printl('  数据: ' + JSON.stringify(data));
  552.     }
  553. };

  554. LogManager.prototype.debug = function(message, data) {
  555.     this.log(this.levels.DEBUG, message, data);
  556. };

  557. LogManager.prototype.info = function(message, data) {
  558.     this.log(this.levels.INFO, message, data);
  559. };

  560. LogManager.prototype.warn = function(message, data) {
  561.     this.log(this.levels.WARN, message, data);
  562. };

  563. LogManager.prototype.error = function(message, data) {
  564.     this.log(this.levels.ERROR, message, data);
  565. };

  566. LogManager.prototype.getLevelName = function(level) {
  567.     for (var name in this.levels) {
  568.         if (this.levels[name] === level) {
  569.             return name;
  570.         }
  571.     }
  572.     return 'UNKNOWN';
  573. };

  574. LogManager.prototype.getLogs = function(level, limit) {
  575.     limit = limit || 50;
  576.     var filteredLogs = this.logs;
  577.    
  578.     if (level !== undefined) {
  579.         filteredLogs = this.logs.filter(function(log) {
  580.             return log.level === this.getLevelName(level);
  581.         }.bind(this));
  582.     }
  583.    
  584.     return filteredLogs.slice(-limit);
  585. };

  586. LogManager.prototype.clear = function() {
  587.     this.logs = [];
  588.     printl("日志已清空");
  589. };

  590. var logManager = new LogManager();
  591. printl("LogManager实例已创建");

  592. // 演示日志记录
  593. logManager.debug("调试信息", { detail: "这是调试级别的日志" });
  594. logManager.info("应用启动", { version: "1.0.0", environment: "production" });
  595. logManager.warn("内存使用较高", { used: "80%", total: "1GB" });
  596. logManager.error("数据库连接失败", { host: "localhost", port: 3306 });

  597. sleep.second(2); // 2秒延时

  598. printl("最近5条日志:");
  599. var recentLogs = logManager.getLogs(undefined, 5);
  600. for (var i = 0; i < recentLogs.length; i++) {
  601.     printl("  " + recentLogs[i].level + " - " + recentLogs[i].message);
  602. }

  603. logManager.clear();

  604. sleep.second(2); // 2秒延时

  605. // ==================== 9. 字符串工具类 ====================
  606. printl("");
  607. printl("=== 9. 字符串工具类 ===");

  608. function StringUtils() {}

  609. StringUtils.capitalize = function(str) {
  610.     if (!str) return str;
  611.     return str.charAt(0).toUpperCase() + str.slice(1);
  612. };

  613. StringUtils.camelCase = function(str) {
  614.     return str.replace(/[-_\s]+(.)?/g, function(match, chr) {
  615.         return chr ? chr.toUpperCase() : '';
  616.     });
  617. };

  618. StringUtils.kebabCase = function(str) {
  619.     return str.replace(/([a-z])([A-Z])/g, '$1-$2')
  620.               .replace(/[\s_]+/g, '-')
  621.               .toLowerCase();
  622. };

  623. StringUtils.truncate = function(str, length, suffix) {
  624.     suffix = suffix || '...';
  625.     if (str.length <= length) return str;
  626.     return str.substring(0, length - suffix.length) + suffix;
  627. };

  628. StringUtils.repeat = function(str, times) {
  629.     var result = '';
  630.     for (var i = 0; i < times; i++) {
  631.         result += str;
  632.     }
  633.     return result;
  634. };

  635. StringUtils.padLeft = function(str, length, char) {
  636.     char = char || ' ';
  637.     while (str.length < length) {
  638.         str = char + str;
  639.     }
  640.     return str;
  641. };

  642. StringUtils.padRight = function(str, length, char) {
  643.     char = char || ' ';
  644.     while (str.length < length) {
  645.         str += char;
  646.     }
  647.     return str;
  648. };

  649. StringUtils.stripHtml = function(html) {
  650.     return html.replace(/<[^>]*>/g, '');
  651. };

  652. StringUtils.escapeHtml = function(text) {
  653.     return text.replace(/[&<>"']/g, function(match) {
  654.         switch (match) {
  655.             case '&': return '&';
  656.             case '<': return '<';
  657.             case '>': return '>';
  658.             case '"': return '"';
  659.             case "'": return ''';
  660.         }
  661.     });
  662. };

  663. printl("StringUtils工具类已定义");

  664. // 演示字符串操作
  665. printl("首字母大写: " + StringUtils.capitalize('hello world'));
  666. printl("驼峰命名: " + StringUtils.camelCase('hello-world-test'));
  667. printl("短横线命名: " + StringUtils.kebabCase('helloWorldTest'));
  668. printl("截断字符串: " + StringUtils.truncate('这是一个很长的字符串', 10));
  669. printl("重复字符串: " + StringUtils.repeat('*', 5));
  670. printl("左填充: " + StringUtils.padLeft('42', 5, '0'));
  671. printl("右填充: " + StringUtils.padRight('42', 5, '0'));
  672. printl("去除HTML: " + StringUtils.stripHtml('<p>这是一段<b>HTML</b>文本</p>'));
  673. printl("转义HTML: " + StringUtils.escapeHtml('<script>alert("XSS")</script>'));

  674. sleep.second(2); // 2秒延时

  675. // ==================== 10. 数组工具类 ====================
  676. printl("");
  677. printl("=== 10. 数组工具类 ===");

  678. function ArrayUtils() {}

  679. ArrayUtils.unique = function(arr) {
  680.     var seen = {};
  681.     var result = [];
  682.    
  683.     for (var i = 0; i < arr.length; i++) {
  684.         var item = arr[i];
  685.         var key = typeof item + ':' + item;
  686.         if (!seen.hasOwnProperty(key)) {
  687.             seen[key] = true;
  688.             result.push(item);
  689.         }
  690.     }
  691.    
  692.     return result;
  693. };

  694. ArrayUtils.flatten = function(arr) {
  695.     var result = [];
  696.    
  697.     for (var i = 0; i < arr.length; i++) {
  698.         if (Array.isArray(arr[i])) {
  699.             result = result.concat(ArrayUtils.flatten(arr[i]));
  700.         } else {
  701.             result.push(arr[i]);
  702.         }
  703.     }
  704.    
  705.     return result;
  706. };

  707. ArrayUtils.chunk = function(arr, size) {
  708.     var result = [];
  709.    
  710.     for (var i = 0; i < arr.length; i += size) {
  711.         result.push(arr.slice(i, i + size));
  712.     }
  713.    
  714.     return result;
  715. };

  716. ArrayUtils.shuffle = function(arr) {
  717.     var shuffled = arr.slice();
  718.    
  719.     for (var i = shuffled.length - 1; i > 0; i--) {
  720.         var j = Math.floor(Math.random() * (i + 1));
  721.         var temp = shuffled[i];
  722.         shuffled[i] = shuffled[j];
  723.         shuffled[j] = temp;
  724.     }
  725.    
  726.     return shuffled;
  727. };

  728. ArrayUtils.groupBy = function(arr, key) {
  729.     var result = {};
  730.    
  731.     for (var i = 0; i < arr.length; i++) {
  732.         var item = arr[i];
  733.         var groupKey = item[key];
  734.         
  735.         if (!result.hasOwnProperty(groupKey)) {
  736.             result[groupKey] = [];
  737.         }
  738.         
  739.         result[groupKey].push(item);
  740.     }
  741.    
  742.     return result;
  743. };

  744. ArrayUtils.sum = function(arr, property) {
  745.     var total = 0;
  746.    
  747.     for (var i = 0; i < arr.length; i++) {
  748.         if (property) {
  749.             total += arr[i][property] || 0;
  750.         } else {
  751.             total += arr[i];
  752.         }
  753.     }
  754.    
  755.     return total;
  756. };

  757. ArrayUtils.average = function(arr, property) {
  758.     if (arr.length === 0) return 0;
  759.    
  760.     var sum = ArrayUtils.sum(arr, property);
  761.     return sum / arr.length;
  762. };

  763. printl("ArrayUtils工具类已定义");

  764. // 演示数组操作
  765. var numbers = [1, 2, 3, 2, 4, 1, 5, 3];
  766. printl("去重: " + JSON.stringify(ArrayUtils.unique(numbers)));

  767. var nested = [1, [2, 3], [4, [5, 6]], 7];
  768. printl("扁平化: " + JSON.stringify(ArrayUtils.flatten(nested)));

  769. var largeArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  770. printl("分块: " + JSON.stringify(ArrayUtils.chunk(largeArray, 3)));

  771. var cards = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'];
  772. printl("洗牌前: " + JSON.stringify(cards));
  773. var shuffledCards = ArrayUtils.shuffle(cards);
  774. printl("洗牌后: " + JSON.stringify(shuffledCards));

  775. var users = [
  776.     { name: '张三', age: 25, department: '技术部' },
  777.     { name: '李四', age: 30, department: '市场部' },
  778.     { name: '王五', age: 28, department: '技术部' },
  779.     { name: '赵六', age: 35, department: '财务部' }
  780. ];

  781. printl("按部门分组: " + JSON.stringify(ArrayUtils.groupBy(users, 'department')));
  782. printl("年龄总和: " + ArrayUtils.sum(users, 'age'));
  783. printl("平均年龄: " + ArrayUtils.average(users, 'age'));

  784. sleep.second(2); // 2秒延时

  785. // ==================== 总结 ====================
  786. printl("");
  787. printl("=== 实用工具集演示完成 ===");
  788. printl("&#128161; 这些工具在实际项目开发中非常实用!");
  789. printl("包含:文件管理、网络请求、数据验证、缓存、事件系统、任务队列、配置管理、日志、字符串和数组工具");
复制代码




untoAIWROK软件运算符高级应用实例nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
群发软件AIWROK软件脚本JSON转换示例
AIWROK软件脚本JSON转换示例
群发软件AIWROK软件运算符高级应用实例
AIWROK软件运算符高级应用实例
群发软件JavaScript语法小示例
JavaScript语法小示例
群发软件展示JavaScript各种语句标识符的实际应用
展示JavaScript各种语句标识符的实际应用
群发软件AIWROK条件语句实用示例智能活动推荐系统
AIWROK条件语句实用示例智能活动推荐系统
群发软件AIWROK软件示例数组方法实战应用
AIWROK软件示例数组方法实战应用
群发软件示例JavaScript的 try-catch-finally-throw用法
示例JavaScript的 try-catch-finally-throw用法
群发软件JavaScript 高级错误处理实战示例
JavaScript 高级错误处理实战示例
群发软件安卓脚本AIWROK软件示例JS函数高级用法
安卓脚本AIWROK软件示例JS函数高级用法
群发软件AIWROK环境JavaScript编码规范完整示例
AIWROK环境JavaScript编码规范完整示例
群发软件安卓脚本示例实时截图判断页面变化
安卓脚本示例实时截图判断页面变化
群发软件苹果脚本7种不同的OCR识别
苹果脚本7种不同的OCR识别
群发软件安卓脚本多变的function用法
安卓脚本多变的function用法
群发软件苹果脚本示例Config配置H5集成
苹果脚本示例Config配置H5集成
群发软件安卓脚本类型判断与Boolean对象综合示例
安卓脚本类型判断与Boolean对象综合示例
群发软件线程全局变量H5可视化控制台
线程全局变量H5可视化控制台
群发软件秒吐司快速显示和关闭的UI提示窗口
秒吐司快速显示和关闭的UI提示窗口
群发软件苹果脚本里H5 里的 window.at.callFun 示例
苹果脚本里H5 里的 window.at.callFun 示例
群发软件H5日志打印运行过程例子
H5日志打印运行过程例子
群发软件AIWROK软件字符串方法实用案例
AIWROK软件字符串方法实用案例
群发软件HID贝塞尔曲线运动控制器
HID贝塞尔曲线运动控制器
群发软件AIWROK苹果脚本sleep方法综合实战示例
AIWROK苹果脚本sleep方法综合实战示例
群发软件苹果脚本Line控件的多种创意用法和实际应用场景
苹果脚本Line控件的多种创意用法和实际应用场景
群发软件苹果脚本toast高级应用综合示例
苹果脚本toast高级应用综合示例
群发软件苹果智能OCR自动化助手
苹果智能OCR自动化助手
群发软件苹果脚本UI超快速点击示例
苹果脚本UI超快速点击示例
群发软件展示时间戳的各种复杂处理方法
展示时间戳的各种复杂处理方法
群发软件苹果脚本随机数实用示例
苹果脚本随机数实用示例
群发软件安卓手机脚本多种倒计时显示方式
安卓手机脚本多种倒计时显示方式
群发软件苹果脚本屏幕事件EVENT示例
苹果脚本屏幕事件EVENT示例
群发软件苹果脚本屏幕类screen例子
苹果脚本屏幕类screen例子
群发软件安卓手机config配置演示实列
安卓手机config配置演示实列
群发软件苹果脚本配置config小实例
苹果脚本配置config小实例 https://www.yuque.com/aiwork/dcvhmb/qolobpysdg0hvi2e
群发软件苹果脚本矩形类rect小实例
苹果脚本矩形类rect小实例
群发软件AIWROK安卓苹果平台设计的实用工具库
AIWROK安卓苹果平台设计的实用工具库
群发软件AIWROK软件Function导入方法实例演示
AIWROK软件Function导入方法实例演示
群发软件苹果脚本实例1项目project应用示例
苹果脚本实例1项目project应用示例
群发软件苹果脚本实例1剪贴板功能集成
苹果脚本实例1剪贴板功能集成
群发软件苹果iOS脚本Detect类系统性使用示例
苹果iOS脚本Detect类系统性使用示例
群发软件AIWROK苹果系统打印H5界面日志输出
AIWROK苹果系统打印H5界面日志输出
群发软件H5案例自动化看广告撸金币系统
H5案例自动化看广告撸金币系统
群发软件AIWROK苹果脚本H5任务执行小例子
AIWROK苹果脚本H5任务执行小例子
群发软件AIWROK软件苹果水平容器[Horizontal]小实例
AIWROK软件苹果水平容器[Horizontal]小实例
群发软件AIWROK苹果脚本实例1界面UI输入框类[Input]
AIWROK苹果脚本实例1界面UI输入框类
群发软件AIWROK软件苹果脚本案例1空白站位[Space]方法
AIWROK软件苹果脚本案例1空白站位[Space]方法
群发软件AIWROK软件苹查系统复选框用法
AIWROK软件苹查系统复选框用法
群发软件苹果AIWROK实例单选按钮组类[RadioButtonGroup]完整综合示例
苹果AIWROK实例单选按钮组类[RadioButtonGroup]完整综合示例
群发软件AIWROK软件苹果实例UI-垂直容器[Vertical]高级综合示例
AIWROK软件苹果实例UI-垂直容器[Vertical]高级综合示例
群发软件IOS苹果脚本View的完整功能实例
IOS苹果脚本View的完整功能实例
群发软件AIWROK苹果系统实例演示1标签类[Label]方法
AIWROK苹果系统实例演示1标签类[Label]方法
信息发布软件AIWROK软件苹果UI按钮Button方法示例
AIWROK软件苹果UI按钮Button方法示例
信息发布软件AIWROK软件苹果TAB界面视图示例
AIWROK软件苹果TAB界面视图示例
信息发布软件AIWROK苹果系统自带view视图简洁UI界面示例
AIWROK苹果系统自带view视图简洁UI界面示例
信息发布软件汇集HID安卓输入文字的方法和复制粘贴示例
汇集HID安卓输入文字的方法和复制粘贴示例
信息发布软件AIWROK软件找字与OCR方法汇总示例
AIWROK软件找字与OCR方法汇总示例
信息发布软件AIWROK软件找图方法汇总示例
AIWROK软件找图方法汇总示例
信息发布软件AIWROK软件滑动方法集合示例
AIWROK软件滑动方法集合示例
信息发布软件AIWROK软件安卓AIWROK汇集软件点击
AIWROK软件安卓AIWROK汇集软件点击
信息发布软件苹果系统点击方法综合示例
苹果系统点击方法综合示例
信息发布软件AIWROK苹果系统找图方法完整示例集合
AIWROK苹果系统找图方法完整示例集合
信息发布软件苹果系统找图方法完整示例集合
苹果系统找图方法完整示例集合
信息发布软件苹果IOS系统找字OCR方法例子
苹果IOS系统找字OCR方法例子
信息发布软件AIWORK软件数组高级示例
AIWORK软件数组高级示例
信息发布软件AIWROK软件运算符封装库示例
AIWROK软件运算符封装库示例
信息发布软件AIWROK软件语法运行小示例
AIWROK软件语法运行小示例

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2026-5-15 09:58 , Processed in 0.415392 second(s), 49 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表