Я пишу веб-интерфейс для инженерного моделирования. Задний конец принимает значения только в единицах, не имеющих префикса СИ, например, в метрах или ваттах. Однако было бы предпочтительнее разрешить пользователю вводить значения в любом устройстве, которое они пожелают. Например, если вам нужно ввести расстояние, можно ввести:javascript инженерная библиотека ввода
15 inches
3.1 meter
1.4 km
, но такие ценности, как:
12 seconds
5 pounds
147 watts
будет отклонено. Сначала я попытался использовать js-quantities, но он не анализирует производные единицы наиболее интуитивным способом. Для каждой единицы умножения требуется место. Например, для ввода суммы заряда в часы усилителя, 100 Ah
недействителен, но 100 A h
является приемлемым. Кроме того, js-величины не поддерживают единицы крутящего момента или температуры (только разность температур, вы не можете преобразовать Fahrenheit в Цельсию, например)
Затем я попытался использовать API-интерфейс Google Analytics для преобразования единиц измерения, но он производит неудобовразумительные анализирующие результаты для малых чисел:
Преобразовать 5 нм до метров
запрос:
http://www.google.com/ig/calculator?hl=en&q=5%20nm=?m
ответ:
{lhs: "5 nanometers",rhs: "5.0 \x26#215; 10\x3csup\x3e-9\x3c/sup\x3e meters",error: "",icc: false}
Конверсии, о которых вы упомянули, не * действительно * необходимо обработать на google calc. Они просто статичны, поэтому вы должны делать их в браузере. Что-то вроде ответа в этом вопросе: http://stackoverflow.com/questions/865590/unit-of-measure-conversion-library – olan
Да, желательно, чтобы они были сделаны в браузере. Я просто ищу службу библиотеки ИЛИ, которая может анализировать единицы таким образом. Я видел вопрос, который вы связали, но он не обрабатывает фактический синтаксический анализ. Кроме того, я не уверен, что могу легко создать исчерпывающий список действительных единиц. – charliehorse55
Hi @ charliehorse55. Я автор js-величин. Я был бы рад исправить проблемы, если это возможно (особенно А-парсинг). Тем не менее, я пробовал tempF для преобразования и крутящего момента tempC, но он работает как ожидалось ((новый Qty ('100 tempF'). To ('tempC')), новый Qty ('N * m')). – gentooboontoo