2016-04-27 148 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號碼。 –