最合乎逻辑的做法是将值以毫米的形式存储在数据库中,一个字段用于宽度,另一个字段用于高度。
然后为 CMS 构建一个插件,它将输入数据(作为字符串)转换为 mms 中的相关浮点值以用于数据库插入......奇怪的是,我最近做了一些类似于一个小的 JavaScript“程序”来放置一个网站上的公制/英制计算器。
基本上,JS 获取用户输入字符串并使用正则表达式将它们分开,以将它们转换为“单位块”,然后将其转换为毫米。
正则表达式看起来像:
//regexps
var reImperialLengths = /[0-9\,\.\/\s]+\s*(?:yd|yds|yard|yards|\'|ft|foot|feet|\"|in|ins|inch|inches)/i;
var reImperialLengthsFormat = /^[^0-9]*(?:([0-9]+\.?[0-9]*)\s*(?:yd|yds|yard|yards))?\s*(?:([0-9]+\.?[0-9]*)\s*(?:\'|ft|foot|feet))?\s*(?:([0-9]+)\s*(?:([0-9]+)\/([0-9]+))?\s*(?:\"|in|ins|inch|inches))?\s*$/i;
var reMetricLengths = /[0-9\,\.\s]+\s*(?:m|cm|mm)/i;
var reMetricLengthsFormat = /^[^0-9]*(?:([0-9]+\.?[0-9]*)\s*(?:m|metres))?\s*(?:([0-9]+\.?[0-9]*)\s*(?:cm|cms|centimetres?))?\s*(?:([0-9]+)\s*(?:mm|mms|millimetres))?\s*$/i;
这为您在用户输入数据的方式上提供了更大的灵活性,并允许您非常轻松地进行您可能需要的任何计算,因为程序本身将使用数字。
只需将数字转换回您希望在前端显示的方式即可。你也可以在那里美化它,以便它输出1'
任何304.8mms
东西。
用户仍然可以填充输入字符串,但它使他们“弄错”的方法更少。