Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Applescript查找两个常量之间的变量文本_Javascript_String_Applescript_Webpage - Fatal编程技术网

Javascript 使用Applescript查找两个常量之间的变量文本

Javascript 使用Applescript查找两个常量之间的变量文本,javascript,string,applescript,webpage,Javascript,String,Applescript,Webpage,我不熟悉applescript。我试图通过safari从网页向变量返回字符串。目标字符串更改,但前面和后面的单词是静态的 示例:苹果1293.34美元 “苹果”和“美元”永远不会改变,但我想要的只是介于两者之间的数字 元素没有ID,我也没有运气尝试使用Javascript通过类访问 谢谢:)您应该首先找到您的元素 var element = document.getElementById("elementID"); 然后获得您的价值: var value = parseFloat(eleme

我不熟悉applescript。我试图通过safari从网页向变量返回字符串。目标字符串更改,但前面和后面的单词是静态的

示例:苹果1293.34美元

“苹果”和“美元”永远不会改变,但我想要的只是介于两者之间的数字

元素没有ID,我也没有运气尝试使用Javascript通过类访问


谢谢:)

您应该首先找到您的元素

var element = document.getElementById("elementID");
然后获得您的价值:

 var value = parseFloat(element.innerText.split(" ")[1])

您可以尝试解析Curl

set myUrl to "http://stackoverflow.com/questions/18633200/finding-variable-text-between-two-constants-with-applescript"

set xxx to do shell script "curl " & quoted form of myUrl & " | grep -o Apple.*USD | sed 's/Apple\\(.*\\)USD/\\1/'"

下面是给出文本的applescript方法。这并不意味着苹果在文本中只出现过一次。这将检查并找到苹果在2个单词后面跟USD的位置,然后得到它们之间的正确值

set theText to "USD some words Apple USD more words Apple 1293.34 USD some words Apple USD"

set {tids, AppleScript's text item delimiters} to {AppleScript's text item delimiters, "Apple"}
set textItems to text items of theText
set AppleScript's text item delimiters to tids

set theValue to missing value
repeat with i from 2 to (count of textItems)
    set thisItem to item i of textItems
    try
        if word 2 of thisItem is "USD" then
            set theValue to word 1 of thisItem
            exit repeat
        end if
    end try
end repeat

return theValue

该元素没有ID。如果可以的话,在询问此类问题时,最好将其添加到指向所指站点的链接中。我希望有人能理解这一点。你能解释一下这里发生了什么吗?基本上,脚本开头的“文本项”内容将文本字符串转换为列表。该列表根据“苹果”一词分为几个部分。以下是列表:{“USD一些单词”,“USD更多单词”,“1293.34 USD一些单词”,“USD”}。然后我使用repeat循环对列表项进行迭代。我知道,如果其中一个列表项的第二个单词是“USD”,那么我已经找到了我要找的。。。因此,我返回该列表项的第一个单词。你可以看到第三项是我想要的,该项的第一个单词是“1293.34”。