0

我有以下刺痛输入,我需要分开输出。示例1.5 cc1.5cc 我现在正在根据使用以下代码分隔输入字符串的空格来执行此操作:

var immunization = msg['dose_size'].toString().trim();
immunization = immunization.split(' ');
var amount = immunization[0];
var unit = immunization[1];

然而,在测试中,我发现输入并不总是以这种方式格式化,有时空格会丢失。所以我没有空格的输入输出是1.5cc,第二个输出是空的。

我尝试使用正则表达式,如: \d*.?\d+ 并且它有效,但由于它在 1.5 上找到匹配项,我得到第一个输出的空值和第二个输出的“cc”,我需要两者.

有什么建议么?

谢谢。

4

1 回答 1

1

您可以使用此代码获取数据:

/(\d+(?:\.\d*)?|\.\d+)\s*(\S+)/.exec(inputString)
  • (\d+(?:\.\d*)?|\.\d+)将匹配十进制数,它将接受整数34、常规十进制数34.555,并允许.55554533.通过。

  • 后面是\s*匹配的可选空格。

  • 随后(\S+)匹配并捕获下一个标记(没有空格字符)。

如果匹配,则返回一个数组,其中数组的索引 1 为十进制数,数组的索引 2 为单位。

于 2012-07-17T14:16:36.710 回答