commit aeac228df7121dada4827ac248e61ba8b1db7318
parent a69cccca470753c96ef070ee09e531ed760b4e67
Author: Florian Dold <florian.dold@gmail.com>
Date: Sat, 5 Dec 2015 17:58:41 +0100
Taler amount parsing.
Diffstat:
1 file changed, 21 insertions(+), 0 deletions(-)
diff --git a/extension/lib/util.js b/extension/lib/util.js
@@ -16,6 +16,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.
*
* @param amount