From aeac228df7121dada4827ac248e61ba8b1db7318 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sat, 5 Dec 2015 17:58:41 +0100 Subject: [PATCH] Taler amount parsing. --- extension/lib/util.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/extension/lib/util.js b/extension/lib/util.js index 9d83f7e74..d364d9593 100644 --- a/extension/lib/util.js +++ b/extension/lib/util.js @@ -15,6 +15,27 @@ function amount_format (amount) } +/** + * Parse an amount that is specified like '5.42 EUR'. + * Returns a {currency,value,fraction} object or null + * if the input is invalid. + */ +function amount_parse_pretty(s) { + let pattern = /(\d+)(.\d+)?\s*([a-zA-Z]+)/; + let matches = pattern.exec(s); + if (null == matches) { + return null; + } + return { + // Always succeeds due to regex + value: parseInt(matches[1]), + // Should we warn / fail on lost precision? + fraction: Math.round(parseFloat(matches[2] || 0) * 1000000), + currency: matches[3], + }; +} + + /** * Format amount with currency as String. *