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
Запустить скрипт
Входной параметр
Выходной параметр