Imacro搜索和替换

时间:2016-04-27 09:31:31

标签: imacros

我有Imacro代码,代码首先用一些文本填充字段。我想在填写表单后,搜索每个已填充的表单以检查一些文本,如果它在任何字段中找到此文本,则替换文本字符串 任何想法如何做到这一点

Form to process

首先,我想遍历所有字段并检查字符串" strong" (在POS 3中)并保存POS = 3

接下来删除字符串" strong"来自POS = 3

请分享任何想法如何做到

1 个答案:

答案 0 :(得分:2)

试试这个宏:

SET textOut "strong"
SET textIn ""
SET !EXTRACT_TEST_POPUP NO

TAG POS=1 TYPE=TEXTAREA FORM=ID:post ATTR=NAME:answer[] EXTRACT=TXT
TAG POS=2 TYPE=TEXTAREA FORM=ID:post ATTR=NAME:answer[] EXTRACT=TXT
TAG POS=3 TYPE=TEXTAREA FORM=ID:post ATTR=NAME:answer[] EXTRACT=TXT
TAG POS=4 TYPE=TEXTAREA FORM=ID:post ATTR=NAME:answer[] EXTRACT=TXT

SET posNum EVAL("var a = '{{!EXTRACT}}'.split('[EXTRACT]'); for (i in a) if (a[i].match(/{{textOut}}/)) break; ++i;")

SET !EXTRACT NULL
TAG POS={{posNum}} TYPE=TEXTAREA FORM=ID:post ATTR=NAME:answer[] EXTRACT=TXT
SET newText EVAL("'{{!EXTRACT}}'.replace(/{{textOut}}/g, '{{textIn}}').trim();")
TAG POS={{posNum}} TYPE=TEXTAREA FORM=ID:post ATTR=NAME:answer[] CONTENT={{newText}}

旧信息。
这是替换第一个textarea中的一些文本的代码:

SET textOut "abc"
SET textIn "def"
SET !EXTRACT_TEST_POPUP NO
TAG POS=1 TYPE=TEXTAREA FORM=ID:post ATTR=NAME:answer[] EXTRACT=TXT
SET newText EVAL("'{{!EXTRACT}}'.replace(/{{textOut}}/g, '{{textIn}}');")
TAG POS=1 TYPE=TEXTAREA FORM=ID:post ATTR=NAME:answer[] CONTENT={{newText}}
SET !EXTRACT NULL

对于其他字段,只需更改POS参数的编号。

要定义位置编号,您可以调整以下块:

SET curPos 1
TAG POS={{curPos}} TYPE=TEXTAREA FORM=ID:post ATTR=NAME:answer[] EXTRACT=TXT
SET posNum EVAL("('{{!EXTRACT}}'.match(/{{textOut}}/)) ? {{curPos}} : 'NULL';")
PROMPT {{posNum}}