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

는 또한 I 값들은 이미 "아이폰 6"문자열과 일치하기 때문에 "IPHONE 6S"및 "아이폰 6 PLUS"를 제거 하였다.