我正在使用一个名为TEC-IT Wedge的应用程序与杂货秤连接(对于那些不知道杂货秤的人来说,杂货秤是一种带有扫描仪的美化秤。
秤连接到PC上的串行端口,楔形应用程序监控该端口,下面的代码处理条形码的扫描,然后请求重量,所有这些都在工作。
我遇到问题的地方是格式化秤中的返回重量。
从秤返回的数据采用 ASCII"S11####"格式,因此S110004重量为 0.04 磅的物品,这就是我需要将等待发送到我们使用秤输入数据的应用程序的方式。 对于下面的代码,返回 S110004 返回 00.4
我想由于某种原因,我在抓取数字时丢失了 0,以便将小数点位置放在正确的位置。
var cartonverify = Left(DATARAW, 5);
var weightverify = Left(DATARAW, 3);
if (cartonverify == "S08B3")
{
ActivateWindow("Untitled - Notepad");
SendKeyStrokes(DATARAW.replace(/^S08B3+/i, '') );
DATA = "";
WriteToDevice("S11x0d", 1000);
}
if (weightverify == "S11")
{
ActivateWindow("Untitled - Notepad");
var cartwieght = Right(DATA, 4);
if (cartwieght.length == 4)
{
var cartounces = Right(cartwieght, 2);
var cartpounds = Left(cartwieght, 2);
var WMWeight = cartpounds + "." + cartounces;
SendKeyStrokes(WMWeight);
DATA = "";
}
}
将字符串重新格式化为可以根据需要解析为数字的内容。
var str = 'S110004';
str = str.replace(/S11(dd)(dd)/, '$1.$2'); // "00.04"
var num = parseFloat(str); // 0.04
将小数位放在正则表达式步骤中也可以使您不必使用除法。