AutomationAnywhere + регулярное выражение Javascript

У меня "Ошибка недопустимого символа" при использовании сценария JS для извлечения писем из текста, которые я не могу обработать в течение последних 2 дней.

Я получаю текст из веб-приложения с помощью клонирования объектов и передаю его в переменную, которую я позже передам в сценарий JS.

И, конечно же, мой JS-скрипт, который я проверил, и он работает:

var args = WScript.Arguments;

var pattern = \w+@\w+.\w;
var result = /pattern/.exec(args);

WScript.StdOut.WriteLine(result);

1 ответ

Решение

Прежде всего, давайте разберем это в модулях и отладим их.

,

Первый модуль: клонирование объектов

Клонирование объектов очень хорошо для создания надежности, и эта надежность достигается путем тщательного выбора свойств, и в вашем примере вы выбрали путь,DOMXPath, тег HTML. Хорошей практикой является идентификация свойств, которые являются уникальными и, следовательно, обеспечивают высокую точность и некоторые из них. эти свойства зависят от контекста. Например, на странице входа в систему некоторые свойства включают в себя:

Приоритет 1: путь, HTML ID, InnerText

Приоритет 2: DOMXPath, HTMLValue

Вы можете добавить свойства, которые, по вашему мнению, могут быть уникальными для вашего контекста.

Есть ли strResult дать вам ожидаемое значение? Если да, давайте продолжим

Второй модуль: запустить скрипт

Принимает 2 параметра $strResult$ а также $mail$

И, конечно же, мой JS-скрипт, который я проверил, и он работает:

и вы подтвердили, что модуль JS также работает нормально


Если вы проверили результаты первых двух модулей, я думаю, что где-то в скрипте может быть символ Invalid, параметры, проверьте используемые регулярные выражения. Не должен ли шаблон быть заключен в строку " "??

=====================

РЕДАКТИРОВАТЬ:

Я хотел воссоздать проблему и дать вам желаемый результат, но я не знаю вашего предполагаемого ввода и вывода для Javascript. Однако, насколько я понимаю, ваш javascript, я скомпилировал и выполнил этот скрипт в Automation Anywhere и работает отлично.

JavaScript

var args = WScript.Arguments;

if (args.length > 0)
{  
    var val=0;
     var str=args.item(0);
    var ary = str.split(",");
    //WScript.Echo(ary.length);

    // for loop in case there are multiple parameters passed
     for (var i=0; i < ary.length; i++)
     {


            //Takes the input passed as parameter
            var input = (ary[i]);

            // Uses the Match() Method to look for an email address in input string
            var result = input.match(/\w+@\w+\.com/); 

            //returns the email address
     }

  WScript.StdOut.WriteLine(result);
}

ИЛИ ЖЕ

        //Takes the input passed as parameter
        var input = (ary[i]);

        //Declares the pattern used
        var pattern = /\w+@\w+\.com/

        // Uses the Exec() Method to look for a match
        var result = pattern.exec(input); 

        //returns the email address

Запустить скрипт

введите описание изображения здесь

Входной параметр

введите описание изображения здесь

Выходной параметр

введите описание изображения здесь

Другие вопросы по тегам