You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2009/07/22 09:38:26 UTC
svn commit: r796625 -
/myfaces/trinidad/branches/1.2.11.4-branch/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/NumberFormat.js
Author: matzew
Date: Wed Jul 22 07:38:25 2009
New Revision: 796625
URL: http://svn.apache.org/viewvc?rev=796625&view=rev
Log:
TRINIDAD-1537 - client convertNumber truncates invalid number instead of throwing exception
Thanks to Cale Scholl for his patch
Modified:
myfaces/trinidad/branches/1.2.11.4-branch/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/NumberFormat.js
Modified: myfaces/trinidad/branches/1.2.11.4-branch/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/NumberFormat.js
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.11.4-branch/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/NumberFormat.js?rev=796625&r1=796624&r2=796625&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.11.4-branch/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/NumberFormat.js (original)
+++ myfaces/trinidad/branches/1.2.11.4-branch/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/NumberFormat.js Wed Jul 22 07:38:25 2009
@@ -250,12 +250,13 @@
*/
TrNumberFormat.prototype.stringToNumber = function(numberString)
{
- numberString = parseFloat(numberString);
- if(isNaN(numberString))
+ // parseFloat("123abc45") returns 123, but 123abc45 is considered an invalid number on the server,
+ // so check for a valid number first. Exclude non-numbers and disallow exponential notation.
+ if (isNaN(numberString) || numberString.indexOf('e') != -1 || numberString.indexOf('E') != -1)
{
throw new TrParseException("not able to parse number");
}
- return numberString;
+ return parseFloat(numberString);
}
/**
@@ -276,7 +277,7 @@
if(negS != -1)
{
numberString = numberString.substr(0, numberString.length - nSufNoSpace.length);
- return (parseFloat(numberString)*-1);
+ return (stringToNumber(numberString) * -1);
}
else
{
@@ -296,7 +297,7 @@
if(posS != -1)
{
numberString = numberString.substr(0, numberString.length - pSufNoSpace.length);
- numberString = parseFloat(numberString);
+ numberString = stringToNumber(numberString);
}
else
{
@@ -317,13 +318,13 @@
TrNumberFormat.prototype.stringToPercentage = function(percentString)
{
var isPercentage = (percentString.indexOf('%') != -1);
- var numberString = percentString.replace(/\%/g, '');
- numberString = parseFloat(numberString);
- if(!isPercentage || isNaN(numberString))
+ if (!isPercentage)
{
throw new TrParseException("not able to parse number");
}
- return numberString;
+
+ var numberString = percentString.replace(/\%/g, '');
+ return stringToNumber(numberString);
}
/**