AppleScript列表/包含

时间:2016-11-11 10:47:06

标签: if-statement applescript contain

set r to ""
set device to "IPHONE 6 PLUS SILVER 128GB-AUS"
set HighValueDevicesPass to {"IPHONE 7", "IPHONE 6", "IPAD PRO", "IPHONE 6S", "IPHONE 6 PLUS"}

if devices contains HighValueDevicesPass then
    set r to "Pass"
end if
return r

我不明白为什么这不起作用。 该变量为“IPHONE 6 PLUS SILVER 128GB-AUS”,因此实际上包含了“IPHONE 6 PLUS”,列在清单上。

如果我在列表中使用IF,它工作正常,但是我必须将所有不同的模型设置为变量。

我该如何进行部分匹配?

1 个答案:

答案 0 :(得分:3)

您可以检查字符串是否在列表中,但是您无法检查字符串中是否包含任意列表项。你必须逐个重复所有项目。

set r to ""
set device to "IPHONE 6 PLUS SILVER 128GB-AUS"
set HighValueDevicesPass to {"IPHONE 7", "IPHONE 6", "IPAD PRO"}

repeat with i from 1 to count HighValueDevicesPass
    if device contains item i of HighValueDevicesPass then
        set r to "pass"
        exit repeat
    end if
end repeat

return r

我还删除了值" IPHONE 6S"和#34; IPHONE 6 PLUS"因为它们与" IPHONE 6"匹配字符串已经。