AppleScript список / содержит
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 ответ
Решение
Вы можете проверить, есть ли строка в списке, но вы не можете проверить, находится ли произвольный элемент списка в строке. Вы должны повторить все пункты по одному.
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".