Imacro 搜索和替换

Imacro search and replace

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

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

接下来从 POS=3

中删除字符串 "strong "

请分享如何做到这一点的想法

试试这个宏:

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}}

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

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}}