 | |  |  |
//字符.分割字符
/** * 字符串分割工具模块 - 修正版 * 最后更新:2025-04-02 */
var 字符 = { /** * 字符串分割方法 * @param {string} str 要分割的字符串 * @param {string} divide 分隔符 * @returns {Array|null} 分割后的数组或null(错误时) */ 分割字符: function(str, divide) { try { if (typeof str !== 'string') return null; if (typeof divide !== 'string') return null;
if (divide === '') { var result = []; for (var i = 0; i < str.length; i++) { result.push(str.charAt(i)); } return result; }
var parts = []; var lastIndex = 0; var index = str.indexOf(divide); while (index >= 0) { parts.push(str.substring(lastIndex, index)); lastIndex = index + divide.length; index = str.indexOf(divide, lastIndex); } parts.push(str.substring(lastIndex)); return parts; } catch (e) { return null; } } };
printl("=== 测试开始 ==="); printl("基本测试: " + 字符.分割字符('a,b,c', ',')); printl("逐字符测试: " + 字符.分割字符('abc', '')); printl("错误测试: " + 字符.分割字符(123, ',')); printl("=== 测试结束 ===");
//字符.删全部空格 /** * 字符串分割工具模块 - 增强版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有分割字符方法... 分割字符: function(str, divide) { // ...原有实现保持不变... },
/** * 删除字符串中所有空格 * @param {string} str 输入字符串 * @returns {string|null} 处理后的字符串或null(错误时) */ 删全部空格: function(str) { try { if (typeof str !== 'string' && !(str instanceof java.lang.String)) { return null; } // 使用正则表达式移除所有空格(包括全角空格) return str.replace(/[\s ]+/g, ''); } catch (e) { printl("[删全部空格错误] " + e.message); return null; } } };
// 测试代码 printl("=== 空格删除测试 ==="); printl("测试1: " + 字符.删全部空格(' a b cd ')); // 输出: "abcd" printl("测试2: " + 字符.删全部空格(' 中 文 空 格 ')); // 输出: "中文空格" printl("测试3: " + 字符.删全部空格(123)); // 输出: null
//字符.删头尾空格
/** * 字符串工具模块 - 增强版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有分割字符方法... 分割字符: function(str, divide) { // ...原有实现保持不变... },
// 原有删全部空格方法... 删全部空格: function(str) { // ...原有实现保持不变... },
/** * 删除字符串开头和结尾的空格 * @param {string} str 输入字符串 * @returns {string|null} 处理后的字符串或null(错误时) */ 删头尾空格: function(str) { try { if (typeof str !== 'string' && !(str instanceof java.lang.String)) { return null; } // 移除开头和结尾的空格(包括全角空格) return str.replace(/^[\s ]+|[\s ]+$/g, ''); } catch (e) { printl("[删头尾空格错误] " + e.message); return null; } } };
// 测试代码 printl("=== 功能测试 ==="); printl("删头尾空格测试: '" + 字符.删头尾空格(' ab cd ') + "'"); // 输出: 'ab cd' printl("全角空格测试: '" + 字符.删头尾空格(' 中文 ') + "'"); // 输出: '中文' printl("错误测试: " + 字符.删头尾空格(123)); // 输出: null
//字符.反向截取
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 反向截取字符串 * @param {string} str 输入字符串 * @param {number} start 起始位置(支持负数) * @param {number} [end] 结束位置(可选,支持负数) * @returns {string|null} 处理后的字符串或null(错误时) */ 反向截取: function(str, start, end) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return null; if (typeof start !== 'number') return null; // 处理负数索引 const len = str.length; let startPos = start < 0 ? Math.max(len + start, 0) : Math.min(start, len); let endPos = len; if (end !== undefined) { if (typeof end !== 'number') return null; endPos = end < 0 ? Math.max(len + end, 0) : Math.min(end, len); } // 确保start <= end if (startPos > endPos) { [startPos, endPos] = [endPos, startPos]; } return str.substring(startPos, endPos); } catch (e) { printl("[反向截取错误] " + e.message); return null; } } };
// 新增测试代码 printl("=== 反向截取测试 ==="); printl("测试1: " + 字符.反向截取('abcd', -1)); // 输出: "d" printl("测试2: " + 字符.反向截取('abcd', -1, -4)); // 输出: "dcba" printl("测试3: " + 字符.反向截取('abcd', 1, 3)); // 输出: "bc" printl("测试4: " + 字符.反向截取('abcd', -2)); // 输出: "cd" printl("错误测试: " + 字符.反向截取(123, 1)); // 输出: null
//字符.反向查找子字符
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 反向查找子字符串位置 * @param {string} str 被查找的字符串 * @param {string} searchValue 要查找的子字符串 * @param {number} [fromIndex] 可选,开始查找的位置 * @returns {number} 子字符串位置(从0开始),未找到返回-1 */ 反向查找子字符: function(str, searchValue, fromIndex) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return -1; if (typeof searchValue !== 'string' && !(searchValue instanceof java.lang.String)) return -1; // 处理fromIndex参数 const len = str.length; let start = fromIndex !== undefined ? (fromIndex < 0 ? Math.max(len + fromIndex, 0) : Math.min(fromIndex, len - 1)) : len - 1; // 反向查找实现 if (searchValue === '') return start >= 0 ? start : len; const searchLen = searchValue.length; for (let i = start; i >= 0; i--) { let match = true; for (let j = 0; j < searchLen; j++) { if (str.charAt(i + j) !== searchValue.charAt(j)) { match = false; break; } } if (match) return i; } return -1; } catch (e) { printl("[反向查找错误] " + e.message); return -1; } } };
// 新增测试代码 printl("=== 反向查找测试 ==="); printl("查找d: " + 字符.反向查找子字符('abcd','d')); // 输出: 3 printl("查找t: " + 字符.反向查找子字符('abcd','t')); // 输出: -1 printl("限定位置查找: " + 字符.反向查找子字符('abcd','a', 2)); // 输出: 0 printl("空子串查找: " + 字符.反向查找子字符('abcd','')); // 输出: 3 printl("错误测试: " + 字符.反向查找子字符(123,'a')); // 输出: -1
//字符.取下标字符
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 获取指定下标位置的字符 * @param {string} str 输入字符串 * @param {number} index 字符位置(支持负数) * @returns {string|null} 指定位置的字符或null(错误时) */ 取下标字符: function(str, index) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return null; if (typeof index !== 'number') return null; // 处理负数索引 const len = str.length; const pos = index < 0 ? Math.max(len + index, 0) : Math.min(index, len - 1); // 边界检查 if (pos < 0 || pos >= len) return null; return str.charAt(pos); } catch (e) { printl("[取下标字符错误] " + e.message); return null; } } };
// 新增测试代码 printl("=== 取下标字符测试 ==="); printl("测试1: " + 字符.取下标字符('abcd', 2)); // 输出: "c" printl("测试2: " + 字符.取下标字符('abcd', -1)); // 输出: "d" printl("测试3: " + 字符.取下标字符('abcd', 10)); // 输出: null printl("测试4: " + 字符.取下标字符('中文测试', 1)); // 输出: "文" printl("错误测试: " + 字符.取下标字符(123, 1)); // 输出: null
//字符.取长度
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 获取字符串长度(字节数) * @param {string} str 输入字符串 * @returns {number|null} 字符串长度或null(错误时) */ 取长度: function(str) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return null; // 计算字节长度(兼容中文) let bytes = 0; for (let i = 0; i < str.length; i++) { const c = str.charCodeAt(i); bytes += c < 128 ? 1 : 2; // ASCII字符1字节,其他2字节 } return bytes; } catch (e) { printl("[取长度错误] " + e.message); return null; } } };
// 新增测试代码 printl("=== 取长度测试 ==="); printl("中文测试: " + 字符.取长度('我们的软件最好用')); // 输出: 8 (4个中文字符×2字节) printl("数字测试: " + 字符.取长度('1771955063')); // 输出: 10 printl("混合测试: " + 字符.取长度('a1中b2')); // 输出: 5 (1+1+2+1+1) printl("空字符串: " + 字符.取长度('')); // 输出: 0 printl("错误测试: " + 字符.取长度(null)); // 输出: null
//字符.复制字符
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 复制字符串指定倍数 * @param {string} str 输入字符串 * @param {number} count 复制倍数 * @returns {string|null} 复制后的字符串或null(错误时) */ 复制字符: function(str, count) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return null; // 设置默认值(ES5写法) count = typeof count === 'number' ? count : 1; if (count < 0) return null; // 处理边界情况 if (count === 0) return ''; if (str.length === 0) return ''; // 高效复制实现 var result = ''; for (var i = 0; i < count; i++) { result += str; } return result; } catch (e) { printl("[复制字符错误] " + e.message); return null; } } };
// 测试代码保持不变 printl("=== 复制字符测试 ==="); printl("默认复制: " + 字符.复制字符('abcd')); // 输出: "abcd" printl("双倍复制: " + 字符.复制字符('ab', 2)); // 输出: "abab" printl("空字符串: " + 字符.复制字符('', 3)); // 输出: "" printl("零次复制: " + 字符.复制字符('abc', 0)); // 输出: "" printl("错误测试: " + 字符.复制字符(123, 2)); // 输出: null
//字符.字母转大写
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 将字母字符转换为大写 * @param {string} str 输入字符串 * @returns {string|null} 大写字符串或null(错误时) */ 字母转大写: function(str) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return null; if (str.length === 0) return str; // 转换实现 var result = ''; for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); if (code >= 97 && code <= 122) { // a-z result += String.fromCharCode(code - 32); } else { result += str.charAt(i); } } return result; } catch (e) { printl("[字母转大写错误] " + e.message); return null; } } };
// 新增测试代码 printl("=== 字母转大写测试 ==="); printl("小写转大写: " + 字符.字母转大写('abcd')); // 输出: "ABCD" printl("混合测试: " + 字符.字母转大写('a1b2中文')); // 输出: "A1B2中文" printl("空字符串: " + 字符.字母转大写('')); // 输出: "" printl("错误测试: " + 字符.字母转大写(123)); // 输出: null
//字符.字母转小写
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 将字母字符转换为小写 * @param {string} str 输入字符串 * @returns {string|null} 小写字符串或null(错误时) */ 字母转小写: function(str) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return null; if (str.length === 0) return str; // 转换实现 var result = ''; for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); if (code >= 65 && code <= 90) { // A-Z result += String.fromCharCode(code + 32); } else { result += str.charAt(i); } } return result; } catch (e) { printl("[字母转小写错误] " + e.message); return null; } } };
// 新增测试代码 printl("=== 字母转小写测试 ==="); printl("大写转小写: " + 字符.字母转小写('ABCD')); // 输出: "abcd" printl("混合测试: " + 字符.字母转小写('A1B2中文')); // 输出: "a1b2中文" printl("空字符串: " + 字符.字母转小写('')); // 输出: "" printl("错误测试: " + 字符.字母转小写(123)); // 输出: null
// 字符.数字转字符
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 将任意数据转换为字符串 * @param {*} data 输入数据 * @param {number} [radix] 进制(2-36) * @returns {string|null} 转换后的字符串或null(错误时) */ 数字转字符: function(data, radix) { try { // 处理null/undefined if (data == null) return null; // 数字进制转换 if (typeof data === 'number' && radix) { if (radix < 2 || radix > 36) return null; return data.toString(radix); } // 默认转换 if (data.toString) return data.toString(); return String(data); } catch (e) { printl("[数字转字符错误] " + e.message); return null; } } };
// 新增测试代码 printl("=== 数字转字符测试 ==="); printl("十进制: " + 字符.数字转字符(4095)); // 输出: "4095" printl("十六进制: " + 字符.数字转字符(4095, 16)); // 输出: "fff" printl("二进制: " + 字符.数字转字符(15, 2)); // 输出: "1111" printl("对象: " + 字符.数字转字符({a:1})); // 输出: "[object Object]" printl("错误测试: " + 字符.数字转字符()); // 输出: null
//字符.查找子字符
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 正向查找子字符串是否存在 * @param {string} str 被查找的字符串 * @param {string} searchValue 要查找的子字符串 * @param {number} [start] 开始查找的位置 * @returns {boolean} 是否找到 */ 正向查找子字符: function(str, searchValue, start) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return false; if (typeof searchValue !== 'string' && !(searchValue instanceof java.lang.String)) return false; // 处理start参数 start = start !== undefined ? Math.max(0, Math.min(start, str.length - 1)) : 0; // 空字符串特殊处理 if (searchValue.length === 0) return start <= str.length; return str.indexOf(searchValue, start) !== -1; } catch (e) { printl("[正向查找错误] " + e.message); return false; } } };
// 新增测试代码 printl("=== 正向查找测试 ==="); printl("查找d: " + 字符.正向查找子字符('abcd','d')); // true printl("查找t: " + 字符.正向查找子字符('abcd','t')); // false printl("限定位置查找: " + 字符.正向查找子字符('abcd','a', 2)); // false printl("空子串查找: " + 字符.正向查找子字符('abcd','')); // true printl("错误测试: " + 字符.正向查找子字符(123,'a')); // false
//字符.查找子字符开头
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 检查字符串是否以指定子字符串结尾 * @param {string} str 被检查的字符串 * @param {string} searchValue 要查找的子字符串 * @param {number} [length] 可选检查长度 * @returns {boolean} 是否以该子字符串结尾 */ 查找子字符结尾: function(str, searchValue, length) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return false; if (typeof searchValue !== 'string' && !(searchValue instanceof java.lang.String)) return false; // 处理length参数 const checkLength = length !== undefined ? Math.min(Math.max(0, length), str.length) : str.length; // 空字符串特殊处理 if (searchValue.length === 0) return true; // 计算起始位置 const startPos = Math.max(0, checkLength - searchValue.length); // 实际检查 return str.substr(startPos, searchValue.length) === searchValue; } catch (e) { printl("[查找结尾错误] " + e.message); return false; } } };
// 新增测试代码 printl("=== 查找结尾测试 ==="); printl("正确结尾: " + 字符.查找子字符结尾('abcd','d')); // true printl("错误结尾: " + 字符.查找子字符结尾('abcd','a')); // false printl("限定长度: " + 字符.查找子字符结尾('abcd','cd', 3)); // true printl("空子串: " + 字符.查找子字符结尾('abcd','')); // true printl("错误测试: " + 字符.查找子字符结尾(123,'d')); // false
//字符.正向截取
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 正向截取字符串 * @param {string} str 输入字符串 * @param {number} start 起始位置(非负整数) * @param {number} [end] 结束位置(可选) * @returns {string|null} 截取的子串或null(错误时) */ 正向截取: function(str, start, end) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return null; if (typeof start !== 'number' || start < 0) return null; // 处理end参数 const len = str.length; const endPos = end !== undefined ? Math.min(Math.max(0, end), len) : len; // 边界检查 if (start >= endPos) return ''; return str.substring(start, endPos); } catch (e) { printl("[正向截取错误] " + e.message); return null; } } };
// 新增测试代码 printl("=== 正向截取测试 ==="); printl("基本截取: " + 字符.正向截取('abcd', 2)); // 输出: "cd" printl("范围截取: " + 字符.正向截取('abcd', 2, 3)); // 输出: "c" printl("空截取: " + 字符.正向截取('abcd', 2, 2)); // 输出: "" printl("错误测试1: " + 字符.正向截取('abcd', -1)); // 输出: null printl("错误测试2: " + 字符.正向截取(123, 1)); // 输出: null
//字符.正向查找子字符
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 正向查找子字符串位置 * @param {string} str 被查找的字符串 * @param {string} searchValue 要查找的子字符串 * @param {number} [start] 可选,开始查找的位置 * @returns {number} 子字符串位置(从0开始),未找到返回-1 */ 正向查找子字符: function(str, searchValue, start) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return -1; if (typeof searchValue !== 'string' && !(searchValue instanceof java.lang.String)) return -1; // 处理start参数 const len = str.length; start = start !== undefined ? Math.max(0, Math.min(start, len - 1)) : 0; // 空字符串特殊处理 if (searchValue.length === 0) return start <= len ? start : -1; // 使用原生indexOf实现 const pos = str.indexOf(searchValue, start); return pos >= 0 ? pos : -1; } catch (e) { printl("[正向查找错误] " + e.message); return -1; } } };
// 新增测试代码 printl("=== 正向查找测试 ==="); printl("查找d: " + 字符.正向查找子字符('abcd','d')); // 输出: 3 printl("查找t: " + 字符.正向查找子字符('abcd','t')); // 输出: -1 printl("限定位置查找: " + 字符.正向查找子字符('abcd','a', 2)); // 输出: -1 printl("空子串查找: " + 字符.正向查找子字符('abcd','')); // 输出: 0 printl("错误测试: " + 字符.正向查找子字符(123,'a')); // 输出: -1
// 字符.连接字符
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 连接多个参数为一串字符串 * @param {...*} args 要连接的参数 * @returns {string|null} 连接后的字符串或null(错误时) */ 连接字符: function() { try { var result = ''; for (var i = 0; i < arguments.length; i++) { var arg = arguments; if (arg == null) continue; if (typeof arg === 'object' && arg.toString) { result += arg.toString(); } else { result += String(arg); } } return result || null; } catch (e) { printl("[连接字符错误] " + e.message); return null; } } };
// 新增测试代码 printl("=== 连接字符测试 ==="); printl("基本连接: " + 字符.连接字符(10,30,'abcd','蜂群课堂',false)); // "1030abcd蜂群课堂false" printl("混合类型: " + 字符.连接字符({a:1}, [1,2], true)); // "[object Object]1,2true" printl("空参数: " + 字符.连接字符()); // null printl("包含null: " + 字符.连接字符('a', null, 'b')); // "ab"
//字符.长度截取
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 按长度截取字符串 * @param {string} str 输入字符串 * @param {number} start 起始位置(支持负数) * @param {number} [length] 截取长度 * @returns {string|null} 截取的子串或null(错误时) */ 长度截取: function(str, start, length) { try { // 参数校验 if (typeof str !== 'string' && !(str instanceof java.lang.String)) return null; if (typeof start !== 'number') return null; // 处理负数起始位置 const len = str.length; let startPos = start < 0 ? Math.max(0, len + start) : Math.min(start, len); // 处理length参数 const endPos = length !== undefined ? Math.min(startPos + Math.max(0, length), len) : len; return str.substring(startPos, endPos); } catch (e) { printl("[长度截取错误] " + e.message); return null; } } };
// 新增测试代码 printl("=== 长度截取测试 ==="); printl("基本截取: " + 字符.长度截取('abcd', 2)); // "cd" printl("限定长度: " + 字符.长度截取('abcd', 2, 1)); // "c" printl("负数起始: " + 字符.长度截取('abcd', -2)); // "cd" printl("超范围截取: " + 字符.长度截取('abcd', 1, 10)); // "bcd" printl("错误测试: " + 字符.长度截取(123, 1)); // null
//字符.随机字母
/** * 字符串工具模块 - 完整版 * 适用:ES5系统安卓 JavaScript引擎Rhino * 最后更新:2025-04-02 */
var 字符 = { // 原有方法保持不变...
/** * 生成随机字母字符串 * @param {number} [digit=1] 生成位数 * @returns {string|null} 随机字母字符串或null(错误时) */ 随机字母: function(digit) { try { // 参数处理 digit = digit !== undefined ? Math.max(1, Math.min(digit, 100)) : 1; // 生成随机字母 var result = ''; var letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; for (var i = 0; i < digit; i++) { result += letters.charAt(Math.floor(Math.random() * letters.length)); } return result; } catch (e) { printl("[随机字母错误] " + e.message); return null; } } };
// 新增测试代码 printl("=== 随机字母测试 ==="); printl("2位随机: " + 字符.随机字母(2)); // 如 "Ab" printl("10位随机: " + 字符.随机字母(10)); // 如 "XkLpQrStUv" printl("默认1位: " + 字符.随机字母()); // 如 "Z" printl("错误测试: " + 字符.随机字母(-1)); // null
1. 分割字符
分割字符: function(str, divide)
- 支持空分隔符(逐字符分割)
- 严格的参数类型检查
- 完整的错误处理
字符.分割字符('a,b,c', ',') → ["a","b","c"] 字符.分割字符('abc', '') → ["a","b","c"]
2. 删全部空格
删全部空格: function(str)
- 使用正则表达式
/[\s ]+/g - 支持Java字符串对象
字符.删全部空格(' a b cd ') → "abcd"
3. 删头尾空格
删头尾空格: function(str)
- 正则表达式
/^[\s ]+|[\s ]+$/g - 保留字符串中间空格
4. 反向截取
反向截取: function(str, start, end)
- 自动处理负索引
- 智能位置交换(当start>end时)
字符.反向截取('abcd', -1) → "d" 字符.反向截取('abcd', -1, -4) → "dcba"
5. 反向查找子字符
反向查找子字符: function(str, searchValue, fromIndex)
6. 取下标字符
取下标字符: function(str, index)
7. 取长度
取长度: function(str)
- 功能:计算字节长度(中文算2字节)
- 实现:通过字符编码判断字节数
8. 复制字符
复制字符: function(str, count)
9. 字母大小写转换
字母转大写: function(str)
字母转小写: function(str)
- 实现:通过ASCII码转换
- 特点:非字母字符保持不变
10. 数字转字符
数字转字符: function(data, radix)
11. 正向查找子字符
正向查找子字符: function(str, searchValue, start)
12. 查找子字符结尾
查找子字符结尾: function(str, searchValue, length)
13. 连接字符
连接字符: function()
- 功能:多参数连接
- 特点:自动跳过null/undefined
14. 长度截取
长度截取: function(str, start, length)
15. 随机字母
随机字母: function(digit)
- 功能:生成随机字母串
- 范围:a-zA-Z
- 限制:最大100位
整体特点- 兼容性:专为Rhino引擎优化
- 健壮性:所有方法都有:
- 一致性:统一返回null表示错误
- 实用性:每个方法都有完整测试用例
| |  | |  |
|