如何用 imacro 只提取前两个字符?
how to extract only first two characters with imacro?
所以 HTML 代码是:
<span class="countdown">
01:22
</span>
提取文本 (01:22) 的宏代码是:
TAG POS=1 TYPE=SPAN ATTR=CLASS:"countdown" EXTRACT=TXT
我只想提取前两个字符而不是整个文本,在我发布的示例中,提取的文本将是“01”而不是“01:22”
您将需要使用 imacro EVAL 方法并使用一点点 javascript 和正则表达式来分解字符串并将其分配给另一个变量,以便您获得前 2 个字符。以下是解决方案:
TAG POS=1 TYPE=SPAN ATTR=CLASS:"countdown" EXTRACT=TXT
SET !VAR1 EVAL("var x=\"{{!EXTRACT}}\"; x=x.match(/^.{2}/).join(''); x;")
PROMPT {{!VAR1}}
尽情享受吧!如果对您有帮助,请点赞,谢谢!
编辑这里有一个稍微好一点的方法,使用javascript分割函数。这将允许您指定 01:22
的第一部分 (01
) 或第二部分 (22
)
TAG POS=1 TYPE=SPAN ATTR=CLASS:"countdown" EXTRACT=TXT
' Below line will assign the first part before colon (01) to VAR1
SET !VAR1 EVAL("var x=\"{{!EXTRACT}}\"; y=x.join(':'); y[0];")
' Below line will assign the first part before colon (01) to VAR2
SET !VAR2 EVAL("var x=\"{{!EXTRACT}}\"; x=x.join(':'); y[1];")
PROMPT {{!VAR1}}
由于最近 comment/question 我的回答更新了答案。
所以 HTML 代码是:
<span class="countdown">
01:22
</span>
提取文本 (01:22) 的宏代码是:
TAG POS=1 TYPE=SPAN ATTR=CLASS:"countdown" EXTRACT=TXT
我只想提取前两个字符而不是整个文本,在我发布的示例中,提取的文本将是“01”而不是“01:22”
您将需要使用 imacro EVAL 方法并使用一点点 javascript 和正则表达式来分解字符串并将其分配给另一个变量,以便您获得前 2 个字符。以下是解决方案:
TAG POS=1 TYPE=SPAN ATTR=CLASS:"countdown" EXTRACT=TXT
SET !VAR1 EVAL("var x=\"{{!EXTRACT}}\"; x=x.match(/^.{2}/).join(''); x;")
PROMPT {{!VAR1}}
尽情享受吧!如果对您有帮助,请点赞,谢谢!
编辑这里有一个稍微好一点的方法,使用javascript分割函数。这将允许您指定 01:22
01
) 或第二部分 (22
)
TAG POS=1 TYPE=SPAN ATTR=CLASS:"countdown" EXTRACT=TXT
' Below line will assign the first part before colon (01) to VAR1
SET !VAR1 EVAL("var x=\"{{!EXTRACT}}\"; y=x.join(':'); y[0];")
' Below line will assign the first part before colon (01) to VAR2
SET !VAR2 EVAL("var x=\"{{!EXTRACT}}\"; x=x.join(':'); y[1];")
PROMPT {{!VAR1}}
由于最近 comment/question 我的回答更新了答案。