我想检查提取的单词是否包含英文字母

时间:2017-01-19 17:48:26

标签: numbers eval extract keyword imacros

我遇到了一个我几天都无法解决的大问题。我是宏新手,我想比较Nb_1 i Nb_2和Nb_3以及Nb_4。

我的配置是iMacros for 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;}其他{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 ...和等等,我收到此错误

期望表达式,得到关键字'else',行: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 个答案:

答案 0 :(得分: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;")