2016-04-27 141 views
1

我有Imacro代码,其中代码首先用一些文本填充字段。我想填补经过长达形式,它搜索每一个已填好的表格来检查一些文本,如果它创建于任何领域这种文本,替换文本字符串 任何sugesstion如何做到这一点Imacro搜索和替换

Form to process

首先,我想在所有的领域进行迭代,并检查字符串“强”(在POS 3),并保存POS = 3

下一页删除字符串“强”,从POS = 3

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

回答

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

感谢朋友。是否有可能跟踪所需文本发生的POS号码?它不支持if/else,所以我很困惑。 –

+0

您可以在'EVAL'命令中使用'if/else'语句。查看更新。 – Shugar

+0

尊敬的朋友谢谢。如果我有四个textarea,POS = 1,2,3,4。 curPos是否遍历所有POS? 。请让我知道我不擅长Imacro。首先,我想跟踪所需字符串存在的POS,然后遍历所有POS以删除所需的字符串。最后,我将使用最初出现的所需字符串的POS号码。 –