2016-11-11 3 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

文字列がリストに含まれているかどうかを確認できますが、任意のリスト項目が文字列内にあるかどうかを確認することはできません。すべてのアイテムを1つずつ繰り返す必要があります。

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 6" の文字列にマッチしているので、私はまた、値 "IPHONE 6S" と "IPHONE 6 PLUS" を削除しました。

関連する問題