在Javascript中从字符串的开头分离数字整数,十进制和/或分数

时间:2015-12-23 14:48:42

标签: javascript

基本上,我正在尝试将数量与各自的测量值分开,以获得配方列表。这样我就可以根据所需的服务数量来调整金额。我有计算工作但仍尝试编辑在JavaScript中用于数学的字符串。

以下是第一个括号中实际需要的值的可能值列表。但我还需要将测量结果显示在第二个括号中。

  • 1g(1)(g)
  • 1g(1)(g)
  • 1 / 2cup(0.5)(杯子)
  • 1/2杯(0.5)(杯)
  • 1 1/2杯(1.5)(杯)
  • 1 1/2杯(1.5)(杯)
  • 2.5g(2.5)(g)

我遇到的问题是数量和测量值都在同一个DB字段中,我不能在后端将它们分开而不会破坏原始代码的分配。此外,作者对代码的任何更新都意味着我必须重新编码。因此,非常感谢任何有关获得正确价值观的帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用正则表达式:

var input = [
  '1g (1) (g)',
  '1 g (1) (g)',
  '1/2cup (0.5) (cup)',
  '1/2 cup (0.5) (cup)',
  '1 1/2cup (1.5) (cup)',
  '1 1/2 cup (1.5) (cup)',
  '2.5g (2.5) (g)'];
function extract(item) {
  return item.match(/\(([^\)]+)\) \(([^\)]+)\)/).slice(1);
}
var output = input.map(extract);
document.getElementById('output').innerHTML = JSON.stringify(output);
<pre id="output"></pre>