0

我在使用 JS 脚本从过去 2 天无法处理的文本中提取邮件时出现“无效字符错误”。

在此处输入图像描述

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

在此处输入图像描述 在此处输入图像描述

当然,我检查了我的 JS 脚本并且它可以工作:

var args = WScript.Arguments;

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

WScript.StdOut.WriteLine(result);
4

1 回答 1

2

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

.

第一个模块:对象克隆

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

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

优先级 2:DOMXPath、HTMLValue

您可以选择添加您认为可能对您的上下文唯一的属性

是否strResult给你期望值?如果是,让我们继续

第二模块:运行脚本

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

当然,我检查了我的 JS 脚本并且它可以工作:

并且您已经确认 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

运行脚本

在此处输入图像描述

输入参数

在此处输入图像描述

输出参数

在此处输入图像描述

于 2018-05-02T19:50:29.593 回答