DeekeScript Pro 已发布:AI 编写 UI 的 Android 自动化框架,可定制工作台立即了解 →DeekeScript Pro 已发布:AI 编写 UI 的 Android 自动化框架,可定制工作台立即了解 →DeekeScript Pro 已发布:AI 编写 UI 的 Android 自动化框架,可定制工作台立即了解 →DeekeScript Pro 已发布:AI 编写 UI 的 Android 自动化框架,可定制工作台立即了解 →Skip to content

文本处理 - Helper ​

去掉文本里的不可见字符。微信等应用会在 contentDescription 的字与字之间插入零宽空格、窄空格。屏幕上是「武汉光谷」,indexOf('武汉光谷') 和 descContains('武汉光谷') 却匹配不到。

只保留普通空格(U+0020)。控制符、换行、零宽字符、方向标记、变体选择符,以及不换行空格、窄空格、全角空格都会去掉。入参为 null 时返回空字符串,不会抛异常。

stripInvisible(text) ​

参数:

  • text {string} 原始文本,可以为 null

返回: {string} 去掉不可见字符后的文本。text 为 null 时返回空字符串

javascript
let raw = '武\u200b汉\u200b光\u200b谷 已关注';
console.log(Helper.stripInvisible(raw)); // 武汉光谷 已关注

contains(text, keyword) ​

参数:

  • text {string} 原始文本,可以为 null
  • keyword {string} 要查找的关键词

返回: {boolean} 两边都去掉不可见字符后,文本是否包含关键词。文本或关键词为 null,或关键词去掉不可见字符后为空,返回 false

javascript
let keyword = '武汉光谷';
let tag = UiSelector().className('android.view.View').filter(v => {
    return Helper.contains(v.desc(), keyword);
}).findOne();

desc()、descContains() 比较的是原文,不会自动去掉这些字符。需要包含匹配时,用 filter 配合 Helper.contains。

AutoJS文档 Released under the ISC License.