AppleScript 问题检查指定文本的字符串

Posted

技术标签:

【中文标题】AppleScript 问题检查指定文本的字符串【英文标题】:AppleScript issue checking string for specified text 【发布时间】:2021-12-25 14:01:20 【问题描述】:

我想测试一个字符串是否包含两个文本项(“&”或“和”)。如果字符串包含任何一个项目,我希望测试返回 True,如果不包含,则返回 False。 我正在使用这个测试来确定指定的字符串(输入到表单字段中的人的名字)是一个人的名字还是一对夫妇的名字。

问题:此代码似乎在返回 True 和 False 之间随机摇摆。我尝试过直接测试字符串,测试对字符串的变量引用,检查不同的字符串,并在运行测试之前显式重置测试变量的值......但是返回的布尔值仍然是不可预测的。

我错过了什么? (如果这是 AppleScript 的限制问题,我愿意使用 javascript 来检查字符串)。

当测试在变量 xy 上运行时,下面的代码应该返回 True,但在变量 z 上运行时应该返回 False(因为“Southerland”的“and”不是一个独立的词)。

set x to "John Jacob & Johanna Smith"
set y to "Kathy and Kurt Gallows"
set z to "Barbara Southerland"
set theName to x
set coupleIdentifiers to "&", " and "
if theName contains some text item of coupleIdentifiers then
    set testIt to true
else
    set testIt to false
end if
get testIt

【问题讨论】:

【参考方案1】:

问题在于您使用some text item of coupleIdentifiers,它随机返回coupleIdentifiersitem。尝试只运行以下两行 代码 几次:

set coupleIdentifiers to "&", " and "
some text item of coupleIdentifiers

运行它足够的次数,它会返回两个项目,一次一个。

您需要使用不同的查询,例如:

if theName contains "&" or theName contains " and " then

如:

set x to "John Jacob & Johanna Smith"
set y to "Kathy and Kurt Gallows"
set z to "Barbara Southerland"
set theName to x

if theName contains "&" or theName contains " and " then
    set testIt to true
else
    set testIt to false
end if

get testIt

【讨论】:

以上是关于AppleScript 问题检查指定文本的字符串的主要内容,如果未能解决你的问题,请参考以下文章

Python读取文本,输出指定中文(字符串)

带有自定义图标的applescript显示对话框

AppleScript 基础(一)基本语法和数据类型

iMessage 的 AppleScript 错误 - 无法获取文本聊天 ID 的服务

Python读取文本,输出指定中文(字符串)

AppleScript 使用文本文件作为源将 iTunes 中的多个曲目添加到播放列表中