2016-11-11 115 views
0
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」。AppleScript列表/包含

它的工作正常,如果我使用IF是在列表中,但然後我將不得不將所有不同的模型設置爲一個變量。

我該如何做一個部分匹配?

回答

2

您可以檢查一個字符串是否在列表中,但不能檢查任意列表項是否在字符串中。你必須重複所有的項目。

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」 及 「IPHONE 6 PLUS」,因爲它們是由 「IPHONE 6」 串已經匹配。