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".

Другие вопросы по тегам