2017-01-19 29 views
1

我有一個很大的問題,我無法解決幾天。我是宏觀新手,我想比較Nb_1 i Nb_2和Nb_3和Nb_4。我想檢查提取的單詞是否包含英文字母

我的配置是iMacros的爲FF v9.0.3的Firefox 50.1.0的Windows 10

Nb_1和Nb_2其號碼和工作。

Nb_3和Nb_4是單詞,存在問題。我想檢查是否!EXTRACT字包含','b','c','d','e','f','g'...並且如果是{x = 1;} else {x = 0;}

當我提取一個詞,如果該單詞包含英文字母,如果是的話 - 我想{x = 1;}。如果不是,我想{x = 0;}。

這是我的腳本

'Extract 1st Number: 

SET !EXTRACT NULL 
TAG POS=4 TYPE=TD ATTR=CLASS:text-center:* EXTRACT=TXT 
SET Nb_1 {{!EXTRACT}} 
'> 
'Extract 2nd Number: 

SET !EXTRACT NULL 
TAG POS=5 TYPE=TD ATTR=CLASS:text-center:* EXTRACT=TXT 
SET Nb_2 {{!EXTRACT}} 
'> 

'Extract 3nd Word: 
SET !EXTRACT NULL 
TAG POS=2 TYPE=H5 ATTR=CLASS:media-heading EXTRACT=TXT 
SET Nb_3 {{!EXTRACT}} 
SET !EXTRACT NULL 

'Extract 4nd Word: 
SET !EXTRACT NULL 
SET Nb_4 {{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',}} 

TAG POS=R1 TYPE=BUTTON ATTR=CLASS:mainButton:* EXTRACT = HTM 
SET !VAR1 EVAL("var s = \"{{!EXTRACT}}\"; s = s.split(' ')[1]; s=s.replace('id=', ''); s=s.replace('4045549725', '');s;") 
SET Button EVAL("var n1='{{Nb_1}}', n2='{{Nb_2}}', n3='{{Nb_3}}', n4='{{Nb_4}}'; if((n1*1)>(n2*1)) else if(n3=n4) {x=1;} else{x=0;} x;") 

WAIT SECONDS=2 
TAG POS={{Button}} TYPE=BUTTON ATTR=ID:{{!VAR1}} 
SET !VAR5 EVAL("var randomNumber=Math.floor(Math.random()*2 + 1); randomNumber;") 
WAIT SECONDS={{!VAR5}} 

Nb_1和Nb_2正在正確的,但是當我嘗試檢查,如果字Nb_3包含 'A', 'B', 'C', 'd','E ' 'F',' G ......等等,我得到這個錯誤

預期的表現,得到了關鍵字 '其他',行:30(錯誤代碼:-1001)

這是工作和比較Nb_1和Nb_2

SET Button EVAL("var n1='{{Nb_1}}', n2='{{Nb_2}}', n3='{{Nb_3}}', n4='{{Nb_4}}'; if((n1*1)>(n2*1)){x=1;} else{x=0;} x;") 

但是,當我添加Nb_3和Nb_4時,出現錯誤。有誰知道我做錯了什麼? 如果有人有一個想法如何解決這個問題,請分享。 感謝

回答

1

和連接兩個條件組合在一起:

SET Button EVAL("var x = 1; var w = '{{Nb_3}}'.replace(/\s/g, '').toLowerCase(); for (i = 0; i < w.length; i++) {if (w.charCodeAt(i) < 97 || w.charCodeAt(i) > 122) x = 0}; var n1='{{Nb_1}}', n2='{{Nb_2}}'; if((n1*1)>(n2*1)){y=1;} else{y=0;}; (x && y) ? 1 : 0;") 

我認爲下面的代碼應該是在你的情況有所幫助:

SET Button EVAL("var x = 1; var w = '{{Nb_3}}'.replace(/\s/g, '').toLowerCase(); for (i = 0; i < w.length; i++) {if (w.charCodeAt(i) < 97 || w.charCodeAt(i) > 122) x = 0} x;") 



起初你可以試試這條線:

SET Button EVAL("'{{Nb_3}}'.match(/\D/) ? 1 : 0;") 
+0

謝謝你的回覆@Shugar我試過了,但它不起作用。此代碼比較Nb_1和Nb_2'SET Button EVAL(「var n1 ='{{Nb_1}}',n2 ='{{Nb_2}}'; if((n1 * 1)>(n2 * 1)){x = 1;} else {x = 0;} x;「)'但是當我添加你的代碼時,它不起作用。它不識別與英文字母相比的阿拉伯字母。 – nameisaq

+0

這個問題對我來說還不清楚。 「Nb_3」變量中的「至少有一個英文字母」還是「所有英文字母」? – Shugar

+0

我的意思是所有的英語詞彙,如果這個詞。我會盡力給你舉個例子。如果單詞是(スポイト),即x = 0,當是單詞(例子),則x = 1。如果單詞是(例如ポ),那麼x = 0。對我來說重要的是這個詞包含所有的英文字母。再次感謝@Shugar – nameisaq

相關問題