Номер Javascript / вопрос строки
Я работаю с приложением TEC-IT Wedge для взаимодействия с продуктовыми весами (для тех, кто не в курсе, продуктовые весы - это прославленные весы со сканером.
Весы подключены к последовательному порту на ПК, и приложение wwge отслеживает этот порт, код ниже обрабатывает сканирование штрих-кода, а затем запрашивает вес, все это работает.
Где я сталкиваюсь с проблемой, формирует возвращаемый вес от весов.
данные, возвращаемые из шкалы, имеют формат 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("S11\x0d", 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 = "";
}
}
1 ответ
Измените вашу строку на что-то, что может быть проанализировано как число по желанию.
var str = 'S110004';
str = str.replace(/S11(\d\d)(\d\d)/, '$1.$2'); // "00.04"
var num = parseFloat(str); // 0.04
Ввод десятичного разряда на шаге RegExp также избавляет вас от необходимости использовать деление.