kivi.parse_amount: bei ungültigen mathematischen Ausdrücken 0 zurückliefern
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 6 Feb 2017 10:48:52 +0000 (11:48 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 6 Feb 2017 10:48:52 +0000 (11:48 +0100)
Ansonsten würde eine Exception geworfen, was ein anderes Verhalten als
bei der Perl-Variante wäre.

js/kivi.js
js/t/kivi/parse_amount.js

index dbf5a0e..c6b7074 100644 (file)
@@ -66,7 +66,11 @@ namespace("kivi", function(ns) {
       return 0;
 
     /* jshint -W061 */
-    return eval(amount);
+    try {
+      return eval(amount);
+    } catch (err) {
+      return 0;
+    }
   };
 
   ns.round_amount = function(amount, places) {
index 1ef2b11..1c267c4 100644 (file)
@@ -115,3 +115,9 @@ QUnit.test("kivi.parse_amount function German number style with thousand separat
 
   assert.equal(kivi.parse_amount('iuh !@#$% 10,00'), 0, 'iuh !@#$% 10,00');
 });
+
+QUnit.test("kivi.parse_amount function German number style with thousand separator & invalid math expression", function( assert ) {
+  kivi.setup_formats({ numbers: '1.000,00' });
+
+  assert.equal(kivi.parse_amount('54--42'), 0, '54--42');
+});