首页 > 解决方案 > 字符串拆分管道在 Mirth 连接 JavaScript 中不起作用

问题描述

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

例子:

var x = "RO|123|test|account|test2";
var arr = x.split('|');

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

arr[0] -> RO
arr[1] -> 123
arr[2] -> test
arr[3] -> account
arr[4] -> test2 

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

arr[0] -> R
arr[1] -> O
arr[2] -> |
arr[3] -> 1
arr[4] -> 2

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

标签: javascriptmirth

解决方案


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

对于此声明:

var x = new java.lang.String("RO|123|test|account|test2");

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

// 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

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


推荐阅读