字符串分割管道在 Mirth connect JavaScript 中不起作用

Jin*_*ong 1 javascript mirth

我尝试在 Mirth connect JavaScrip 中将管道与字符串分开,但由于某种原因,它没有按预期工作。

例子:

var x = "RO|123|test|account|test2";
var arr = x.split('|');
Run Code Online (Sandbox Code Playgroud)

当我循环遍历变量 arr 时,我期望输出如下:

arr[0] -> RO
arr[1] -> 123
arr[2] -> test
arr[3] -> account
arr[4] -> test2 
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,输出如下:

arr[0] -> R
arr[1] -> O
arr[2] -> |
arr[3] -> 1
arr[4] -> 2
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么以及如何解决这个问题?

age*_*ano 5

在您的实际代码中,x 可能是一个 Java 字符串,而不是像您的示例中那样的 Javascript 字符串。Java String.split 方法采用正则表达式字符串作为第一个参数。

对于此声明:

var x = new java.lang.String("RO|123|test|account|test2");
Run Code Online (Sandbox Code Playgroud)

其中任何一个都应该给出预期的结果:

// Calling the Java String.split method.
var arr = x.split('\\|'); // arr will be a Java array

// Explicitly convert to a Javascript string to ensure calling
// Javascript String.prototype.split function.
var arr = String(x).split('|'); // arr will be a Javascript array
Run Code Online (Sandbox Code Playgroud)

注意:对于那些只了解 javascript 标签的人,mirth javascript 在 Mozilla Rhino 环境中运行。