在AppleScript中使用do shell script
命令时,通常需要转义某些字符。 Quoted form of
可用于此目的。
是否有为Applescript的do JavaScript
命令设计的等效命令?
以下是一个例子:
set message to "I'm here to collect $100"
do shell script "echo " & message
--> error
如上所述,shell脚本会返回错误,因为shell不会将撇号'
和$
视为文本。最简单,最通用的解决方案是利用AppleScript的quoted form of
,它一举逃脱message
变量中所有违规字符:
set message to "I'm here to collect $100"
do shell script "echo " & quoted form of message
--> "I'm here to collect $100"
当message
变量重复变化或由非专业用户等输入时,避免单独出现违规字符不是解决方案。
使用`do JavaScript:
可能会出现类似的情况set theText to "I'm not recognized by Javascript because I have both
an internal apostophe and line feed"
tell application "Safari" to do JavaScript "document.getElementById('IDgoesHere').value ='" & theText & "';" in document 1
由于theText
和'
,linefeed
的内容显然不会将“JavaScripted”带入预期的文本字段。
问题:AppleScript是否具有等效于quoted form of
的设计用于“转义”特定JavaScript问题的文本。
答案 0 :(得分:0)
Applescript在文本处理方面并不是很好,但你可以用它来逃避角色。
您可以使用此子例程:
function LoginController($scope){
$scope.test = 'login';
}
示例:
on replace_chars(this_text, search_string, replacement_string)
set AppleScript's text item delimiters to the search_string
set the item_list to every text item of this_text
set AppleScript's text item delimiters to the replacement_string
set this_text to the item_list as string
set AppleScript's text item delimiters to ""
return this_text
end replace_chars