diff --git a/.gitignore b/.gitignore index 33d99e09..870069a7 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,6 @@ test/config.js /src-cov /coverage.html /coverage + +# Ignore IntelliJ files +.idea \ No newline at end of file diff --git a/src/js/ripple/amount.js b/src/js/ripple/amount.js index 9775c3d6..93cec17b 100644 --- a/src/js/ripple/amount.js +++ b/src/js/ripple/amount.js @@ -593,8 +593,23 @@ Amount.prototype.invert = function() { * 25.2 XRP => 25200000/XRP * USD 100.40 => 100.4/USD/? * 100 => 100000000/XRP + * + * + * The regular expression below matches above cases, broken down for better understanding: + * + * ^\s* // start with any amount of whitespace + * ([a-z]{3})? // optional any 3 letters + * \s* // any amount of whitespace + * (-)? // optional dash + * (\d+) // 1 or more digits + * (\.(\d*))? // optional . character with any amount of digits + * \s* // any amount of whitespace + * ([a-f0-9]{40}|[a-z0-9]{3})? // optional 40 character hex string OR 3 letters + * \s* // any amount of whitespace + * $ // end of string + * */ -Amount.human_RE = /^\s*([a-z]{3})?\s*(-)?(\d+)(?:\.(\d*))?\s*([a-f0-9]{40}|[a-z0-9]{3})?\s*$/i; +Amount.human_RE = /^\s*([a-z]{3})?\s*(-)?(\d+)(\.(\d*))?\s*([a-f0-9]{40}|[a-z0-9]{3})?\s*$/i; Amount.prototype.parse_human = function(j, opts) { opts = opts || {};