AutomationAnywhere + Javascript 正则表达式

AutomationAnywhere + Javascript regular expression

我在使用 JS 脚本从过去 2 天无法处理的文本中提取邮件时有一个 "Invalid character error"。

我通过使用对象克隆从 Web 应用程序获取文本并将其传递给变量,稍后我将传递给 JS 脚本。

当然还有我检查过并且有效的 JS 脚本:

var args = WScript.Arguments;

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

WScript.StdOut.WriteLine(result);

首先让我们分解它的模块并调试它们。

.

第一个模块:对象克隆

对象克隆非常适合建立可靠性,这种可靠性是通过仔细选择属性来实现的,在您的示例中,您选择了 Path、DOMXPath、HTML Tag 识别独特的属性是一种很好的做法,因此会产生高精度,其中一些属性取决于上下文 例如,在登录页面中,一些属性包括:

优先级 1:路径,HTML ID,InnerText

优先级 2:DOMXPath,HTML值

您可以选择添加您认为对您的上下文而言可能独有的属性

strResult是否给了您预期的价值?如果是,让我们继续

第二个模块:运行脚本

接受 2 个参数 $strResult$$mail$

And of course my JS script which I checked and it works:

并且您已确认 JS 模块也可以正常运行


如果您验证了前 2 个模块的结果,我认为脚本、参数中的某处可能存在无效字符,请检查使用的正则表达式。模式不应该包含在字符串 " " 中吗??

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

编辑:

我想重新创建问题并给你想要的结果,但我不知道你对 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

运行 脚本

输入参数

输出参数