Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Js в связке с imacros. Не выполняется условный оператор if (https://javascript.ru/forum/misc/70610-js-v-svyazke-s-imacros-ne-vypolnyaetsya-uslovnyjj-operator-if.html)

ВладосХацкер 19.09.2017 12:32

Js в связке с imacros. Не выполняется условный оператор if
 
Здравствуйте, возникла такая проблема. Есть скрипт в котором описано условие if(приблизительный скрипт привожу ниже). Imacros почему то не хочет ни в какую "рассматривать это условие, т.е. ошибку не выдает, скрипт запускается но не обращает внимание на условие а просто его перепрыгивает.
iimPlay("CODE:TAG POS=1 ATTR:kakojto_text EXTRACT=TXT");
var a=iimGetLastExtract();
a=a.split(' ');
var b=a[5];
if(a=="Какой-то текст"){
c="Какой-то Текст";
};
alert(c);

В принципе использование условия в моем случае лишь вынужденная мера. Основной задачей было второе слово в извлеченном предложении сделать с большой буквы. Возможно это реализуемо как либо по другому(буду очень рад если предложите вариант).
P.S.:Чуть не забыл, версия firefox 49, версия imacros v8.7.9. Поздняя версия не подходит из за того что там не хорошо работают другие части кода.

Dilettante_Pro 19.09.2017 15:34

ВладосХацкер,
Цитата:

Сообщение от ВладосХацкер
приблизительный скрипт

Цитата:

Сообщение от ВладосХацкер
не хочет ни в какую "рассматривать это условие

А как это
a=a.split(' ');

Сочетается с этим?
if(a=="Какой-то текст")

а уже массив, а не простая переменная.
var a="Какой-то текст";
alert(a=="Какой-то текст");
a=a.split(' ');
alert(a=="Какой-то текст");


var a="Какой-то текст";
a=a.replace('текст','Текст');
alert(a);

ВладосХацкер 19.09.2017 21:18

Dilettante_Pro,
Цитата:

Сообщение от Dilettante_Pro (Сообщение 464863)
А как это
a=a.split(' ');

Сочетается с этим?
if(a=="Какой-то текст")

Прошу прощения, опечатался. Там должно быть
if(b=="Какой-то текст")

Цитата:

Сообщение от Dilettante_Pro (Сообщение 464863)
var a="Какой-то текст";
a=a.replace('текст','Текст');
alert(a);

Всё было бы прекрасно если бы не одно но: a не является константой (она может принимать различных значений, и для каждого из них выполняется разное действие(т.е. Надо заменять каждый раз разные слова). Именно для этого и нужен условный оператор)

Dilettante_Pro 20.09.2017 12:21

Условие не нужно. Если нужно менять во втором слове, то

var a="Что-то совсем другое";
a=a.split(' ');
a[1] = a[1][0].toUpperCase() + a[1].slice(1);
alert(a.join(' '));


Стоит еще проверить, что второе слово есть.

ВладосХацкер 20.09.2017 14:44

Всё, нашёл решение данной проблемы. Если в переменной два слова то используется первая функция, а вторая пропускается:
var text = "Factory new";
 text=text.replace(/ ./, function (m) { return m.toUpperCase(); });
 text=text.replace(/-./, function (m) { return m.toUpperCase(); });
 alert(text);

Если же слова в переменной через тире то выполняется вторая функция а первая просто пропускается
var text = "Field-tested";
 text=text.replace(/ ./, function (m) { return m.toUpperCase(); });
 text=text.replace(/-./, function (m) { return m.toUpperCase(); });
 alert(text);


Благодарю за уделенное на решение данной проблемы время


Часовой пояс GMT +3, время: 12:50.