taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit aeac228df7121dada4827ac248e61ba8b1db7318
parent a69cccca470753c96ef070ee09e531ed760b4e67
Author: Florian Dold <florian.dold@gmail.com>
Date:   Sat,  5 Dec 2015 17:58:41 +0100

Taler amount parsing.

Diffstat:
Mextension/lib/util.js | 21+++++++++++++++++++++
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