Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to format numeric field using dutch format in extjs?

i want to format number entered by user in dutch format. ie. use decimal Separator as , and thousand seperator as .

blur: function () {
   Ext.util.Format.number(this.value, '000,000.00')
}

I want to format my numeric field on blur, the above code works fine, but my requirement is to get a format like this- '000000.000,00'. How to do this in extjs?

like image 312
Jom Avatar asked Dec 13 '22 01:12

Jom


1 Answers

Quick and dirty, just set the thousandSeparator and decimalSeparator. It should work:

//Set these once, right after Ext.onReady
Ext.util.Format.thousandSeparator = '.';
Ext.util.Format.decimalSeparator = ',';

//Then this should work:
Ext.util.Format.number(12345.67, '0,000.00'); //output 12.345,67

Or even better, use the localization, so formats can be changed according to language requirement.

Side note:

The documentation wrote:

To allow specification of the formatting string using UK/US grouping characters (,) and decimal (.) for international numbers, add /i to the end. For example: 0.000,00/i

And from the comments in the source code

// The "/i" suffix allows caller to use a locale-specific formatting string.
// Clean the format string by removing all but numerals and the decimal separator.
// Then split the format string into pre and post decimal segments according to *what* the
// decimal separator is. If they are specifying "/i", they are using the local convention in the format string.

To me, it seems that it means a developer can use a specific format string "0.000,00" to format a given number, and not to mean a developer can use this specific format string to format a number into the format they want. They will still need to change the default separator setting.

Edit

Demo link: http://jsfiddle.net/chaoszcat/nbWwN/

like image 130
Lionel Chan Avatar answered Feb 13 '23 16:02

Lionel Chan