YYPOST群发软件 发表于 7 天前

AIWROK软件字符方法集合小结

<h3 id="tdjKI" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text"></span></h3><div><span class="ne-text"><br></span></div><div><span class="ne-text"><div class="blockcode"><blockquote>//字符.分割字符<br><br><br>/**<br> * 字符串分割工具模块 - 修正版<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    /**<br>   * 字符串分割方法<br>   * @param {string} str 要分割的字符串<br>   * @param {string} divide 分隔符<br>   * @returns {Array|null} 分割后的数组或null(错误时)<br>   */<br>    分割字符: function(str, divide) {<br>      try {<br>            if (typeof str !== 'string') return null;<br>            if (typeof divide !== 'string') return null;<br><br>            if (divide === '') {<br>                var result = [];<br>                for (var i = 0; i &lt; str.length; i++) {<br>                  result.push(str.charAt(i));<br>                }<br>                return result;<br>            }<br><br>            var parts = [];<br>            var lastIndex = 0;<br>            var index = str.indexOf(divide);<br>            <br>            while (index &gt;= 0) {<br>                parts.push(str.substring(lastIndex, index));<br>                lastIndex = index + divide.length;<br>                index = str.indexOf(divide, lastIndex);<br>            }<br>            <br>            parts.push(str.substring(lastIndex));<br>            return parts;<br>            <br>      } catch (e) {<br>            return null;<br>      }<br>    }<br>};<br><br><br><br>printl("=== 测试开始 ===");<br>printl("基本测试: " + 字符.分割字符('a,b,c', ','));<br>printl("逐字符测试: " + 字符.分割字符('abc', ''));<br>printl("错误测试: " + 字符.分割字符(123, ','));<br>printl("=== 测试结束 ===");<br><br><br>//字符.删全部空格<br>/**<br> * 字符串分割工具模块 - 增强版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有分割字符方法...<br>    分割字符: function(str, divide) {<br>      // ...原有实现保持不变...<br>    },<br><br>    /**<br>   * 删除字符串中所有空格<br>   * @param {string} str 输入字符串<br>   * @returns {string|null} 处理后的字符串或null(错误时)<br>   */<br>    删全部空格: function(str) {<br>      try {<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) {<br>                return null;<br>            }<br>            // 使用正则表达式移除所有空格(包括全角空格)<br>            return str.replace(/[\s ]+/g, '');<br>      } catch (e) {<br>            printl("[删全部空格错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 测试代码<br>printl("=== 空格删除测试 ===");<br>printl("测试1: " + 字符.删全部空格(' a bcd'));// 输出: "abcd"<br>printl("测试2: " + 字符.删全部空格(' 中 文 空 格 ')); // 输出: "中文空格"<br>printl("测试3: " + 字符.删全部空格(123)); // 输出: null<br><br>//字符.删头尾空格<br><br>/**<br> * 字符串工具模块 - 增强版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有分割字符方法...<br>    分割字符: function(str, divide) {<br>      // ...原有实现保持不变...<br>    },<br><br>    // 原有删全部空格方法...<br>    删全部空格: function(str) {<br>      // ...原有实现保持不变...<br>    },<br><br>    /**<br>   * 删除字符串开头和结尾的空格<br>   * @param {string} str 输入字符串<br>   * @returns {string|null} 处理后的字符串或null(错误时)<br>   */<br>    删头尾空格: function(str) {<br>      try {<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) {<br>                return null;<br>            }<br>            // 移除开头和结尾的空格(包括全角空格)<br>            return str.replace(/^[\s ]+|[\s ]+$/g, '');<br>      } catch (e) {<br>            printl("[删头尾空格错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 测试代码<br>printl("=== 功能测试 ===");<br>printl("删头尾空格测试: '" + 字符.删头尾空格('ab cd') + "'");// 输出: 'ab cd'<br>printl("全角空格测试: '" + 字符.删头尾空格(' 中文 ') + "'"); // 输出: '中文'<br>printl("错误测试: " + 字符.删头尾空格(123)); // 输出: null<br><br>//字符.反向截取<br><br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 反向截取字符串<br>   * @param {string} str 输入字符串<br>   * @param {number} start 起始位置(支持负数)<br>   * @param {number} 结束位置(可选,支持负数)<br>   * @returns {string|null} 处理后的字符串或null(错误时)<br>   */<br>    反向截取: function(str, start, end) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return null;<br>            if (typeof start !== 'number') return null;<br>            <br>            // 处理负数索引<br>            const len = str.length;<br>            let startPos = start &lt; 0 ? Math.max(len + start, 0) : Math.min(start, len);<br>            let endPos = len;<br>            <br>            if (end !== undefined) {<br>                if (typeof end !== 'number') return null;<br>                endPos = end &lt; 0 ? Math.max(len + end, 0) : Math.min(end, len);<br>            }<br>            <br>            // 确保start &lt;= end<br>            if (startPos &gt; endPos) {<br>                = ;<br>            }<br>            <br>            return str.substring(startPos, endPos);<br>      } catch (e) {<br>            printl("[反向截取错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 反向截取测试 ===");<br>printl("测试1: " + 字符.反向截取('abcd', -1));      // 输出: "d"<br>printl("测试2: " + 字符.反向截取('abcd', -1, -4));// 输出: "dcba"<br>printl("测试3: " + 字符.反向截取('abcd', 1, 3));    // 输出: "bc"<br>printl("测试4: " + 字符.反向截取('abcd', -2));      // 输出: "cd"<br>printl("错误测试: " + 字符.反向截取(123, 1));       // 输出: null<br><br><br>//字符.反向查找子字符<br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 反向查找子字符串位置<br>   * @param {string} str 被查找的字符串<br>   * @param {string} searchValue 要查找的子字符串<br>   * @param {number} 可选,开始查找的位置<br>   * @returns {number} 子字符串位置(从0开始),未找到返回-1<br>   */<br>    反向查找子字符: function(str, searchValue, fromIndex) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return -1;<br>            if (typeof searchValue !== 'string' &amp;&amp; !(searchValue instanceof java.lang.String)) return -1;<br>            <br>            // 处理fromIndex参数<br>            const len = str.length;<br>            let start = fromIndex !== undefined ? <br>                (fromIndex &lt; 0 ? Math.max(len + fromIndex, 0) : Math.min(fromIndex, len - 1)) :<br>                len - 1;<br>            <br>            // 反向查找实现<br>            if (searchValue === '') return start &gt;= 0 ? start : len;<br>            <br>            const searchLen = searchValue.length;<br>            for (let i = start; i &gt;= 0; i--) {<br>                let match = true;<br>                for (let j = 0; j &lt; searchLen; j++) {<br>                  if (str.charAt(i + j) !== searchValue.charAt(j)) {<br>                        match = false;<br>                        break;<br>                  }<br>                }<br>                if (match) return i;<br>            }<br>            <br>            return -1;<br>      } catch (e) {<br>            printl("[反向查找错误] " + e.message);<br>            return -1;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 反向查找测试 ===");<br>printl("查找d: " + 字符.反向查找子字符('abcd','d'));// 输出: 3<br>printl("查找t: " + 字符.反向查找子字符('abcd','t'));// 输出: -1<br>printl("限定位置查找: " + 字符.反向查找子字符('abcd','a', 2)); // 输出: 0<br>printl("空子串查找: " + 字符.反向查找子字符('abcd','')); // 输出: 3<br>printl("错误测试: " + 字符.反向查找子字符(123,'a')); // 输出: -1<br><br>//字符.取下标字符<br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 获取指定下标位置的字符<br>   * @param {string} str 输入字符串<br>   * @param {number} index 字符位置(支持负数)<br>   * @returns {string|null} 指定位置的字符或null(错误时)<br>   */<br>    取下标字符: function(str, index) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return null;<br>            if (typeof index !== 'number') return null;<br>            <br>            // 处理负数索引<br>            const len = str.length;<br>            const pos = index &lt; 0 ? <br>                Math.max(len + index, 0) : <br>                Math.min(index, len - 1);<br>            <br>            // 边界检查<br>            if (pos &lt; 0 || pos &gt;= len) return null;<br>            <br>            return str.charAt(pos);<br>      } catch (e) {<br>            printl("[取下标字符错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 取下标字符测试 ===");<br>printl("测试1: " + 字符.取下标字符('abcd', 2));    // 输出: "c"<br>printl("测试2: " + 字符.取下标字符('abcd', -1));   // 输出: "d"<br>printl("测试3: " + 字符.取下标字符('abcd', 10));   // 输出: null<br>printl("测试4: " + 字符.取下标字符('中文测试', 1)); // 输出: "文"<br>printl("错误测试: " + 字符.取下标字符(123, 1));    // 输出: null<br><br>//字符.取长度<br><br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 获取字符串长度(字节数)<br>   * @param {string} str 输入字符串<br>   * @returns {number|null} 字符串长度或null(错误时)<br>   */<br>    取长度: function(str) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return null;<br>            <br>            // 计算字节长度(兼容中文)<br>            let bytes = 0;<br>            for (let i = 0; i &lt; str.length; i++) {<br>                const c = str.charCodeAt(i);<br>                bytes += c &lt; 128 ? 1 : 2; // ASCII字符1字节,其他2字节<br>            }<br>            return bytes;<br>      } catch (e) {<br>            printl("[取长度错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 取长度测试 ===");<br>printl("中文测试: " + 字符.取长度('我们的软件最好用'));// 输出: 8 (4个中文字符×2字节)<br>printl("数字测试: " + 字符.取长度('1771955063')); // 输出: 10<br>printl("混合测试: " + 字符.取长度('a1中b2'));   // 输出: 5 (1+1+2+1+1)<br>printl("空字符串: " + 字符.取长度(''));          // 输出: 0<br>printl("错误测试: " + 字符.取长度(null));      // 输出: null<br><br>//字符.复制字符<br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 复制字符串指定倍数<br>   * @param {string} str 输入字符串<br>   * @param {number} count 复制倍数<br>   * @returns {string|null} 复制后的字符串或null(错误时)<br>   */<br>    复制字符: function(str, count) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return null;<br>            <br>            // 设置默认值(ES5写法)<br>            count = typeof count === 'number' ? count : 1;<br>            if (count &lt; 0) return null;<br>            <br>            // 处理边界情况<br>            if (count === 0) return '';<br>            if (str.length === 0) return '';<br>            <br>            // 高效复制实现<br>            var result = '';<br>            for (var i = 0; i &lt; count; i++) {<br>                result += str;<br>            }<br>            return result;<br>      } catch (e) {<br>            printl("[复制字符错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 测试代码保持不变<br>printl("=== 复制字符测试 ===");<br>printl("默认复制: " + 字符.复制字符('abcd'));      // 输出: "abcd"<br>printl("双倍复制: " + 字符.复制字符('ab', 2));   // 输出: "abab"<br>printl("空字符串: " + 字符.复制字符('', 3));       // 输出: ""<br>printl("零次复制: " + 字符.复制字符('abc', 0));    // 输出: ""<br>printl("错误测试: " + 字符.复制字符(123, 2));      // 输出: null<br><br>//字符.字母转大写<br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 将字母字符转换为大写<br>   * @param {string} str 输入字符串<br>   * @returns {string|null} 大写字符串或null(错误时)<br>   */<br>    字母转大写: function(str) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return null;<br>            if (str.length === 0) return str;<br>            <br>            // 转换实现<br>            var result = '';<br>            for (var i = 0; i &lt; str.length; i++) {<br>                var code = str.charCodeAt(i);<br>                if (code &gt;= 97 &amp;&amp; code &lt;= 122) { // a-z<br>                  result += String.fromCharCode(code - 32);<br>                } else {<br>                  result += str.charAt(i);<br>                }<br>            }<br>            return result;<br>      } catch (e) {<br>            printl("[字母转大写错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 字母转大写测试 ===");<br>printl("小写转大写: " + 字符.字母转大写('abcd'));// 输出: "ABCD"<br>printl("混合测试: " + 字符.字母转大写('a1b2中文')); // 输出: "A1B2中文"<br>printl("空字符串: " + 字符.字母转大写(''));       // 输出: ""<br>printl("错误测试: " + 字符.字母转大写(123));      // 输出: null<br><br>//字符.字母转小写<br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 将字母字符转换为小写<br>   * @param {string} str 输入字符串<br>   * @returns {string|null} 小写字符串或null(错误时)<br>   */<br>    字母转小写: function(str) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return null;<br>            if (str.length === 0) return str;<br>            <br>            // 转换实现<br>            var result = '';<br>            for (var i = 0; i &lt; str.length; i++) {<br>                var code = str.charCodeAt(i);<br>                if (code &gt;= 65 &amp;&amp; code &lt;= 90) { // A-Z<br>                  result += String.fromCharCode(code + 32);<br>                } else {<br>                  result += str.charAt(i);<br>                }<br>            }<br>            return result;<br>      } catch (e) {<br>            printl("[字母转小写错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 字母转小写测试 ===");<br>printl("大写转小写: " + 字符.字母转小写('ABCD'));// 输出: "abcd"<br>printl("混合测试: " + 字符.字母转小写('A1B2中文')); // 输出: "a1b2中文"<br>printl("空字符串: " + 字符.字母转小写(''));       // 输出: ""<br>printl("错误测试: " + 字符.字母转小写(123));      // 输出: null<br><br>// 字符.数字转字符<br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 将任意数据转换为字符串<br>   * @param {*} data 输入数据<br>   * @param {number} 进制(2-36)<br>   * @returns {string|null} 转换后的字符串或null(错误时)<br>   */<br>    数字转字符: function(data, radix) {<br>      try {<br>            // 处理null/undefined<br>            if (data == null) return null;<br>            <br>            // 数字进制转换<br>            if (typeof data === 'number' &amp;&amp; radix) {<br>                if (radix &lt; 2 || radix &gt; 36) return null;<br>                return data.toString(radix);<br>            }<br>            <br>            // 默认转换<br>            if (data.toString) return data.toString();<br>            return String(data);<br>      } catch (e) {<br>            printl("[数字转字符错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 数字转字符测试 ===");<br>printl("十进制: " + 字符.数字转字符(4095));      // 输出: "4095"<br>printl("十六进制: " + 字符.数字转字符(4095, 16)); // 输出: "fff"<br>printl("二进制: " + 字符.数字转字符(15, 2));   // 输出: "1111"<br>printl("对象: " + 字符.数字转字符({a:1}));       // 输出: ""<br>printl("错误测试: " + 字符.数字转字符());      // 输出: null<br><br><br>//字符.查找子字符<br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 正向查找子字符串是否存在<br>   * @param {string} str 被查找的字符串<br>   * @param {string} searchValue 要查找的子字符串<br>   * @param {number} 开始查找的位置<br>   * @returns {boolean} 是否找到<br>   */<br>    正向查找子字符: function(str, searchValue, start) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return false;<br>            if (typeof searchValue !== 'string' &amp;&amp; !(searchValue instanceof java.lang.String)) return false;<br>            <br>            // 处理start参数<br>            start = start !== undefined ? <br>                Math.max(0, Math.min(start, str.length - 1)) : <br>                0;<br>            <br>            // 空字符串特殊处理<br>            if (searchValue.length === 0) return start &lt;= str.length;<br>            <br>            return str.indexOf(searchValue, start) !== -1;<br>      } catch (e) {<br>            printl("[正向查找错误] " + e.message);<br>            return false;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 正向查找测试 ===");<br>printl("查找d: " + 字符.正向查找子字符('abcd','d'));// true<br>printl("查找t: " + 字符.正向查找子字符('abcd','t'));// false<br>printl("限定位置查找: " + 字符.正向查找子字符('abcd','a', 2)); // false<br>printl("空子串查找: " + 字符.正向查找子字符('abcd','')); // true<br>printl("错误测试: " + 字符.正向查找子字符(123,'a')); // false<br><br>//字符.查找子字符开头<br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 检查字符串是否以指定子字符串结尾<br>   * @param {string} str 被检查的字符串<br>   * @param {string} searchValue 要查找的子字符串<br>   * @param {number} 可选检查长度<br>   * @returns {boolean} 是否以该子字符串结尾<br>   */<br>    查找子字符结尾: function(str, searchValue, length) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return false;<br>            if (typeof searchValue !== 'string' &amp;&amp; !(searchValue instanceof java.lang.String)) return false;<br>            <br>            // 处理length参数<br>            const checkLength = length !== undefined ?<br>                Math.min(Math.max(0, length), str.length) :<br>                str.length;<br>            <br>            // 空字符串特殊处理<br>            if (searchValue.length === 0) return true;<br>            <br>            // 计算起始位置<br>            const startPos = Math.max(0, checkLength - searchValue.length);<br>            <br>            // 实际检查<br>            return str.substr(startPos, searchValue.length) === searchValue;<br>      } catch (e) {<br>            printl("[查找结尾错误] " + e.message);<br>            return false;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 查找结尾测试 ===");<br>printl("正确结尾: " + 字符.查找子字符结尾('abcd','d'));// true<br>printl("错误结尾: " + 字符.查找子字符结尾('abcd','a'));// false<br>printl("限定长度: " + 字符.查找子字符结尾('abcd','cd', 3)); // true<br>printl("空子串: " + 字符.查找子字符结尾('abcd','')); // true<br>printl("错误测试: " + 字符.查找子字符结尾(123,'d')); // false<br><br>//字符.正向截取<br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 正向截取字符串<br>   * @param {string} str 输入字符串<br>   * @param {number} start 起始位置(非负整数)<br>   * @param {number} 结束位置(可选)<br>   * @returns {string|null} 截取的子串或null(错误时)<br>   */<br>    正向截取: function(str, start, end) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return null;<br>            if (typeof start !== 'number' || start &lt; 0) return null;<br>            <br>            // 处理end参数<br>            const len = str.length;<br>            const endPos = end !== undefined ? <br>                Math.min(Math.max(0, end), len) :<br>                len;<br>            <br>            // 边界检查<br>            if (start &gt;= endPos) return '';<br>            <br>            return str.substring(start, endPos);<br>      } catch (e) {<br>            printl("[正向截取错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 正向截取测试 ===");<br>printl("基本截取: " + 字符.正向截取('abcd', 2));   // 输出: "cd"<br>printl("范围截取: " + 字符.正向截取('abcd', 2, 3));// 输出: "c"<br>printl("空截取: " + 字符.正向截取('abcd', 2, 2));   // 输出: ""<br>printl("错误测试1: " + 字符.正向截取('abcd', -1));   // 输出: null<br>printl("错误测试2: " + 字符.正向截取(123, 1));      // 输出: null<br><br>//字符.正向查找子字符<br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 正向查找子字符串位置<br>   * @param {string} str 被查找的字符串<br>   * @param {string} searchValue 要查找的子字符串<br>   * @param {number} 可选,开始查找的位置<br>   * @returns {number} 子字符串位置(从0开始),未找到返回-1<br>   */<br>    正向查找子字符: function(str, searchValue, start) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return -1;<br>            if (typeof searchValue !== 'string' &amp;&amp; !(searchValue instanceof java.lang.String)) return -1;<br>            <br>            // 处理start参数<br>            const len = str.length;<br>            start = start !== undefined ? <br>                Math.max(0, Math.min(start, len - 1)) : <br>                0;<br>            <br>            // 空字符串特殊处理<br>            if (searchValue.length === 0) return start &lt;= len ? start : -1;<br>            <br>            // 使用原生indexOf实现<br>            const pos = str.indexOf(searchValue, start);<br>            return pos &gt;= 0 ? pos : -1;<br>      } catch (e) {<br>            printl("[正向查找错误] " + e.message);<br>            return -1;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 正向查找测试 ===");<br>printl("查找d: " + 字符.正向查找子字符('abcd','d'));// 输出: 3<br>printl("查找t: " + 字符.正向查找子字符('abcd','t'));// 输出: -1<br>printl("限定位置查找: " + 字符.正向查找子字符('abcd','a', 2)); // 输出: -1<br>printl("空子串查找: " + 字符.正向查找子字符('abcd','')); // 输出: 0<br>printl("错误测试: " + 字符.正向查找子字符(123,'a')); // 输出: -1<br><br>// 字符.连接字符<br><br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 连接多个参数为一串字符串<br>   * @param {...*} args 要连接的参数<br>   * @returns {string|null} 连接后的字符串或null(错误时)<br>   */<br>    连接字符: function() {<br>      try {<br>            var result = '';<br>            for (var i = 0; i &lt; arguments.length; i++) {<br>                var arg = arguments;<br>                if (arg == null) continue;<br>                <br>                if (typeof arg === 'object' &amp;&amp; arg.toString) {<br>                  result += arg.toString();<br>                } else {<br>                  result += String(arg);<br>                }<br>            }<br>            return result || null;<br>      } catch (e) {<br>            printl("[连接字符错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 连接字符测试 ===");<br>printl("基本连接: " + 字符.连接字符(10,30,'abcd','蜂群课堂',false)); // "1030abcd蜂群课堂false"<br>printl("混合类型: " + 字符.连接字符({a:1}, , true)); // "1,2true"<br>printl("空参数: " + 字符.连接字符()); // null<br>printl("包含null: " + 字符.连接字符('a', null, 'b')); // "ab"<br><br>//字符.长度截取<br><br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 按长度截取字符串<br>   * @param {string} str 输入字符串<br>   * @param {number} start 起始位置(支持负数)<br>   * @param {number} 截取长度<br>   * @returns {string|null} 截取的子串或null(错误时)<br>   */<br>    长度截取: function(str, start, length) {<br>      try {<br>            // 参数校验<br>            if (typeof str !== 'string' &amp;&amp; !(str instanceof java.lang.String)) return null;<br>            if (typeof start !== 'number') return null;<br>            <br>            // 处理负数起始位置<br>            const len = str.length;<br>            let startPos = start &lt; 0 ? <br>                Math.max(0, len + start) : <br>                Math.min(start, len);<br>            <br>            // 处理length参数<br>            const endPos = length !== undefined ?<br>                Math.min(startPos + Math.max(0, length), len) :<br>                len;<br>            <br>            return str.substring(startPos, endPos);<br>      } catch (e) {<br>            printl("[长度截取错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 长度截取测试 ===");<br>printl("基本截取: " + 字符.长度截取('abcd', 2));      // "cd"<br>printl("限定长度: " + 字符.长度截取('abcd', 2, 1));   // "c"<br>printl("负数起始: " + 字符.长度截取('abcd', -2));   // "cd"<br>printl("超范围截取: " + 字符.长度截取('abcd', 1, 10)); // "bcd"<br>printl("错误测试: " + 字符.长度截取(123, 1));      // null<br><br>//字符.随机字母<br><br><br>/**<br> * 字符串工具模块 - 完整版<br> * 适用:ES5系统安卓 JavaScript引擎Rhino<br> * 最后更新:2025-04-02<br> */<br><br>var 字符 = {<br>    // 原有方法保持不变...<br><br>    /**<br>   * 生成随机字母字符串<br>   * @param {number} 生成位数<br>   * @returns {string|null} 随机字母字符串或null(错误时)<br>   */<br>    随机字母: function(digit) {<br>      try {<br>            // 参数处理<br>            digit = digit !== undefined ? <br>                Math.max(1, Math.min(digit, 100)) : <br>                1;<br>            <br>            // 生成随机字母<br>            var result = '';<br>            var letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';<br>            for (var i = 0; i &lt; digit; i++) {<br>                result += letters.charAt(Math.floor(Math.random() * letters.length));<br>            }<br>            return result;<br>      } catch (e) {<br>            printl("[随机字母错误] " + e.message);<br>            return null;<br>      }<br>    }<br>};<br><br>// 新增测试代码<br>printl("=== 随机字母测试 ===");<br>printl("2位随机: " + 字符.随机字母(2));   // 如 "Ab"<br>printl("10位随机: " + 字符.随机字母(10)); // 如 "XkLpQrStUv"<br>printl("默认1位: " + 字符.随机字母());    // 如 "Z"<br>printl("错误测试: " + 字符.随机字母(-1)); // null<br><br><br><br><br><br><br><br></blockquote></div><br></span></div><h3 id="tdjKI" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">1. 分割字符</span></h3><pre data-language="plain" id="IH49I" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
分割字符: function(str, divide)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="uf8a64ddb" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:按指定分隔符分割字符串</span></li><li id="u95b7bbcf" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">特点</span><span class="ne-text">:</span></li></ul><ul class="ne-list-wrap" style="margin-left: 14px; padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="margin-left: 14px; padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="ud0eec312" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">支持空分隔符(逐字符分割)</span></li><li id="uace2827d" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">严格的参数类型检查</span></li><li id="u72099ce4" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">完整的错误处理</span></li></ul></ul><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="ube04bb4c" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">测试用例</span><span class="ne-text">:</span></li></ul><ul class="ne-list-wrap" style="margin-left: 14px; padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="margin-left: 14px; padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="u6828a0c7" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">字符.分割字符('a,b,c', ',')</span></code><span class="ne-text">&nbsp;</span><span class="ne-text">→</span><span class="ne-text">&nbsp;</span><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">["a","b","c"]</span></code></li><li id="ub435e22b" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">字符.分割字符('abc', '')</span></code><span class="ne-text">&nbsp;</span><span class="ne-text">→</span><span class="ne-text">&nbsp;</span><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">["a","b","c"]</span></code></li></ul></ul><h3 id="brpSC" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">2. 删全部空格</span></h3><pre data-language="javascript" id="QjiWg" class="ne-codeblock language-javascript" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
删全部空格: function(str)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="udf83cb26" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:删除所有空格(包括全角空格)</span></li><li id="u24dd3746" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">实现</span><span class="ne-text">:</span></li></ul><ul class="ne-list-wrap" style="margin-left: 14px; padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="margin-left: 14px; padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="u7b89f335" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">使用正则表达式</span><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">/[\s ]+/g</span></code></li><li id="ua84bb58c" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">支持Java字符串对象</span></li></ul></ul><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="ud9fdf7fb" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">测试用例</span><span class="ne-text">:</span></li></ul><ul class="ne-list-wrap" style="margin-left: 14px; padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="margin-left: 14px; padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="ucb79c422" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">字符.删全部空格(' a b cd ')</span></code><span class="ne-text">&nbsp;</span><span class="ne-text">→</span><span class="ne-text">&nbsp;</span><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">"abcd"</span></code></li></ul></ul><h3 id="DDvBW" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">3. 删头尾空格</span></h3><pre data-language="plain" id="xBTSN" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
删头尾空格: function(str)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="u3eeb92fe" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:仅删除首尾空格</span></li><li id="u67bb92ec" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">实现</span><span class="ne-text">:</span></li></ul><ul class="ne-list-wrap" style="margin-left: 14px; padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="margin-left: 14px; padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="uf0a94816" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">正则表达式</span><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">/^[\s ]+|[\s ]+$/g</span></code></li><li id="uc34af88f" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">保留字符串中间空格</span></li></ul></ul><h3 id="pKbIk" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">4. 反向截取</span></h3><pre data-language="plain" id="cQJro" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
反向截取: function(str, start, end)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="u2469f89d" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:支持负数的反向截取</span></li><li id="u6e2df3fe" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">特点</span><span class="ne-text">:</span></li></ul><ul class="ne-list-wrap" style="margin-left: 14px; padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="margin-left: 14px; padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="uffceb4f6" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">自动处理负索引</span></li><li id="u97deb83f" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">智能位置交换(当start&gt;end时)</span></li></ul></ul><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="uf4b3e0e8" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">测试用例</span><span class="ne-text">:</span></li></ul><ul class="ne-list-wrap" style="margin-left: 14px; padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="margin-left: 14px; padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="uedd77174" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">字符.反向截取('abcd', -1)</span></code><span class="ne-text">&nbsp;</span><span class="ne-text">→</span><span class="ne-text">&nbsp;</span><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">"d"</span></code></li><li id="u64104c04" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">字符.反向截取('abcd', -1, -4)</span></code><span class="ne-text">&nbsp;</span><span class="ne-text">→</span><span class="ne-text">&nbsp;</span><code class="ne-code" style="font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; background-color: rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 2px; padding-right: 2px; padding-left: 2px;"><span class="ne-text">"dcba"</span></code></li></ul></ul><h3 id="lQZUg" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">5. 反向查找子字符</span></h3><pre data-language="plain" id="Z3Kan" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
反向查找子字符: function(str, searchValue, fromIndex)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="u7f2c0160" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:从后向前查找子串</span></li><li id="u3a8d2099" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">实现</span><span class="ne-text">:</span></li></ul><ul class="ne-list-wrap" style="margin-left: 14px; padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="margin-left: 14px; padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="uce6f0001" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">手动实现的查找算法</span></li><li id="u1b8d5dde" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">支持负数的起始位置</span></li></ul></ul><h3 id="mmomQ" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">6. 取下标字符</span></h3><pre data-language="plain" id="cvNRo" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
取下标字符: function(str, index)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="u281d5001" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:安全获取指定位置字符</span></li><li id="ufa0c0bed" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">特点</span><span class="ne-text">:</span></li></ul><ul class="ne-list-wrap" style="margin-left: 14px; padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="margin-left: 14px; padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="u88927ac8" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">支持负索引</span></li><li id="uadbd106b" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">严格的边界检查</span></li></ul></ul><h3 id="F0cNU" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">7. 取长度</span></h3><pre data-language="plain" id="KiYcW" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
取长度: function(str)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="ua034386d" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:计算字节长度(中文算2字节)</span></li><li id="u4f15a967" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">实现</span><span class="ne-text">:通过字符编码判断字节数</span></li></ul><h3 id="bwlvx" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">8. 复制字符</span></h3><pre data-language="plain" id="VxMXt" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
复制字符: function(str, count)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="ucee9b7a8" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:字符串重复复制</span></li><li id="u7955470a" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">默认值</span><span class="ne-text">:count默认为1</span></li></ul><h3 id="Evuv1" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">9. 字母大小写转换</span></h3><pre data-language="plain" id="ZQDh2" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
字母转大写: function(str)
字母转小写: function(str)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="ufe3f0609" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">实现</span><span class="ne-text">:通过ASCII码转换</span></li><li id="ud498d229" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">特点</span><span class="ne-text">:非字母字符保持不变</span></li></ul><h3 id="neqFB" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">10. 数字转字符</span></h3><pre data-language="plain" id="pPPAQ" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
数字转字符: function(data, radix)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="ubd906c9d" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:支持多进制转换</span></li><li id="u4f3327be" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">支持</span><span class="ne-text">:2-36进制</span></li></ul><h3 id="CQgon" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">11. 正向查找子字符</span></h3><pre data-language="plain" id="Ppa6B" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
正向查找子字符: function(str, searchValue, start)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="ue22b2a0d" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:改进版的正向查找</span></li><li id="u7966435a" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">优化</span><span class="ne-text">:更好的参数处理</span></li></ul><h3 id="zVKq1" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">12. 查找子字符结尾</span></h3><pre data-language="plain" id="mLTKi" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
查找子字符结尾: function(str, searchValue, length)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="u182518dc" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:检查字符串结尾</span></li><li id="u41c8c4ce" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">特点</span><span class="ne-text">:可指定检查长度</span></li></ul><h3 id="vI5tI" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">13. 连接字符</span></h3><pre data-language="plain" id="C4z9D" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
连接字符: function()</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="u79a48c97" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:多参数连接</span></li><li id="u4a78daae" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">特点</span><span class="ne-text">:自动跳过null/undefined</span></li></ul><h3 id="QuS4o" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">14. 长度截取</span></h3><pre data-language="plain" id="ZboMI" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
长度截取: function(str, start, length)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="u57aab766" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:按长度而非位置截取</span></li><li id="u0cd7ae93" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">支持</span><span class="ne-text">:负起始位置</span></li></ul><h3 id="kqZcP" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">15. 随机字母</span></h3><pre data-language="plain" id="eDQda" class="ne-codeblock language-plain" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px; font-size: 13px; color: rgb(89, 89, 89);"><code>
随机字母: function(digit)</code></pre><ul class="ne-ul" style="margin-left: 14px; padding-left: 23px;"><li id="u4e5265e5" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">功能</span><span class="ne-text">:生成随机字母串</span></li><li id="u2f6c07f6" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">范围</span><span class="ne-text">:a-zA-Z</span></li><li id="ua4c5b26a" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">限制</span><span class="ne-text">:最大100位</span></li></ul><h3 id="A10yZ" style="margin-top: 16px; margin-bottom: 5px; font-size: 1em; line-height: 28px;"><span class="ne-text">整体特点</span></h3><ol class="ne-ol" style="padding-left: 23px;"><li id="u5c3e8ed7" data-lake-index-type="0"><span class="ne-text">兼容性</span><span class="ne-text">:专为Rhino引擎优化</span></li><li id="ub7d8cf5b" data-lake-index-type="0"><span class="ne-text">健壮性</span><span class="ne-text">:所有方法都有:</span></li></ol><ul class="ne-list-wrap" style="margin-left: 14px; padding-left: 23px; list-style: none;"><ul ne-level="1" class="ne-ul" style="margin-left: 14px; padding-left: 23px; list-style-position: initial; list-style-image: initial;"><li id="ub9b35974" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">参数类型检查</span></li><li id="uf47a2cc0" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">错误处理</span></li><li id="uf288bb50" data-lake-index-type="0" style="list-style-position: initial; list-style-image: initial;"><span class="ne-text">边界条件处理</span></li></ul></ul><ol start="3" class="ne-ol" style="padding-left: 23px;"><li id="uad6051f2" data-lake-index-type="0"><span class="ne-text">一致性</span><span class="ne-text">:统一返回null表示错误</span></li><li id="ub8855275" data-lake-index-type="0"><span class="ne-text">实用性:每个方法都有完整测试用例</span></li></ol><p></p>
页: [1]
查看完整版本: AIWROK软件字符方法集合小结