2017-01-19 15 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 содержит 'а', 'B', 'C', 'D', 'е «„е“,» г ... и так далее, я получаю эту ошибку

ожидаемое выражение, получил ключевое слово „еще“, строка: (код ошибки: -1001) 30

Это работает и сравнение 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}}', если ((n1 * 1)> (n2 * 1)) {x = 1;} else {x = 0;} x; ")' Но когда я добавляю ваш код, он не работает. Он не распознает арабские буквы по сравнению с английскими буквами. – nameisaq

+0

Этот вопрос до сих пор не ясен для меня. Вы имеете в виду «по крайней мере одно английское письмо» или «все английские буквы» в переменной «Nb_3»? – Shugar

+0

Я имею в виду все английские буквы, если слово. Я попытаюсь привести вам пример. Если это слово (ス ポ イ ト), которое равно x = 0, а когда слово (пример), то x = 1. если слово (пример ポ), то x = 0. Мне важно, чтобы это слово содержало все английские буквы. Еще раз спасибо @Shugar – nameisaq

 Смежные вопросы

  • Нет связанных вопросов^_^