1 <html><head><title>Roo/util/Format.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
4 * Copyright(c) 2006-2007, Ext JS, LLC.
6 * Originally Released Under LGPL - original licence link has changed is not relivant.
9 * <script type="text/javascript">
13 * @class Roo.util.Format
14 * Reusable data formatting functions
17 </span><span class="jsdoc-var">Roo.util.Format </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
18 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">trimRe </span><span class="jsdoc-syntax">= /^\s+|\s+$/g;
19 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
20 </span><span class="jsdoc-comment">/**
21 * Truncate a string and add an ellipsis ('...') to the end if it exceeds the specified length
22 * @param {String} value The string to truncate
23 * @param {Number} length The maximum length to allow before truncating
24 * @return {String} The converted text
26 </span><span class="jsdoc-var">ellipsis </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">){
27 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">> </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">){
28 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">value.substr</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">-3)+</span><span class="jsdoc-string">"..."</span><span class="jsdoc-syntax">;
30 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
33 </span><span class="jsdoc-comment">/**
34 * Checks a reference and converts it to empty string if it is undefined
35 * @param {Mixed} value Reference to check
36 * @return {Mixed} Empty string if converted, otherwise the original value
38 </span><span class="jsdoc-var">undef </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
39 </span><span class="jsdoc-keyword">return typeof </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">"undefined" </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">;
42 </span><span class="jsdoc-comment">/**
43 * Convert certain characters (&, <, >, and ') to their HTML character equivalents for literal display in web pages.
44 * @param {String} value The string to encode
45 * @return {String} The encoded text
47 </span><span class="jsdoc-var">htmlEncode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
48 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">!</span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/&/g, </span><span class="jsdoc-string">"&amp;"</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/>/g, </span><span class="jsdoc-string">"&gt;"</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/</g, </span><span class="jsdoc-string">"&lt;"</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/"/g, </span><span class="jsdoc-string">"&quot;"</span><span class="jsdoc-syntax">);
51 </span><span class="jsdoc-comment">/**
52 * Convert certain characters (&, <, >, and ') from their HTML character equivalents.
53 * @param {String} value The string to decode
54 * @return {String} The decoded text
56 </span><span class="jsdoc-var">htmlDecode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
57 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">!</span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/&amp;/g, </span><span class="jsdoc-string">"&"</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/&gt;/g, </span><span class="jsdoc-string">">"</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/&lt;/g, </span><span class="jsdoc-string">"<"</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/&quot;/g, </span><span class="jsdoc-string">'"'</span><span class="jsdoc-syntax">);
60 </span><span class="jsdoc-comment">/**
61 * Trims any whitespace from either side of a string
62 * @param {String} value The text to trim
63 * @return {String} The trimmed text
65 </span><span class="jsdoc-var">trim </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
66 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">trimRe</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">);
69 </span><span class="jsdoc-comment">/**
70 * Returns a substring from within an original string
71 * @param {String} value The original text
72 * @param {Number} start The start index of the substring
73 * @param {Number} length The length of the substring
74 * @return {String} The substring
76 </span><span class="jsdoc-var">substr </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">start</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">length</span><span class="jsdoc-syntax">){
77 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.substr</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">start</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">length</span><span class="jsdoc-syntax">);
80 </span><span class="jsdoc-comment">/**
81 * Converts a string to all lower case letters
82 * @param {String} value The text to convert
83 * @return {String} The converted text
85 </span><span class="jsdoc-var">lowercase </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
86 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.toLowerCase</span><span class="jsdoc-syntax">();
89 </span><span class="jsdoc-comment">/**
90 * Converts a string to all upper case letters
91 * @param {String} value The text to convert
92 * @return {String} The converted text
94 </span><span class="jsdoc-var">uppercase </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
95 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.toUpperCase</span><span class="jsdoc-syntax">();
98 </span><span class="jsdoc-comment">/**
99 * Converts the first character only of a string to upper case
100 * @param {String} value The text to convert
101 * @return {String} The converted text
103 </span><span class="jsdoc-var">capitalize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
104 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">!</span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">value.charAt</span><span class="jsdoc-syntax">(0)</span><span class="jsdoc-var">.toUpperCase</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">value.substr</span><span class="jsdoc-syntax">(1)</span><span class="jsdoc-var">.toLowerCase</span><span class="jsdoc-syntax">();
107 </span><span class="jsdoc-comment">// private
108 </span><span class="jsdoc-var">call </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">){
109 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">arguments.length </span><span class="jsdoc-syntax">> 2){
110 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">args </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Array.prototype.slice.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">, 2);
111 </span><span class="jsdoc-var">args.unshift</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">);
113 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-comment">/** eval:var:value */ </span><span class="jsdoc-keyword">eval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">args</span><span class="jsdoc-syntax">);
114 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
115 </span><span class="jsdoc-comment">/** eval:var:value */
116 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-comment">/** eval:var:value */ </span><span class="jsdoc-keyword">eval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">);
121 </span><span class="jsdoc-comment">/**
122 * safer version of Math.toFixed..??/
123 * @param {Number/String} value The numeric value to format
124 * @param {Number/String} value Decimal places
125 * @return {String} The formatted currency string
127 </span><span class="jsdoc-var">toFixed </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">)
129 </span><span class="jsdoc-comment">// why not use to fixed - precision is buggered???
130 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">) {
131 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Math.round</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">-0);
133 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fact </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.pow</span><span class="jsdoc-syntax">(10,</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">+1);
134 </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">Math.round</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">-0)*</span><span class="jsdoc-var">fact</span><span class="jsdoc-syntax">))/</span><span class="jsdoc-var">fact</span><span class="jsdoc-syntax">;
135 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">z </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">fact</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.substring</span><span class="jsdoc-syntax">(2);
136 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">)) {
137 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'.' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">z</span><span class="jsdoc-syntax">;
140 </span><span class="jsdoc-comment">// now just padd decimals..
141 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.'</span><span class="jsdoc-syntax">);
142 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fd </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">[1] + </span><span class="jsdoc-var">z</span><span class="jsdoc-syntax">);
143 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fd.substring</span><span class="jsdoc-syntax">(0,</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">);
144 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fd.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">);
145 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rm </span><span class="jsdoc-syntax">< 5) {
146 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">[0] + </span><span class="jsdoc-string">'.' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
148 </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">*=1; </span><span class="jsdoc-comment">// turn it into a number;
149 </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">++;
150 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.length </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">) {
151 </span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">[0]*=1;
152 </span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">[0]++;
153 </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.substring</span><span class="jsdoc-syntax">(1); </span><span class="jsdoc-comment">// chop the end off.
154 </span><span class="jsdoc-syntax">}
156 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">[0] + </span><span class="jsdoc-string">'.' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
160 </span><span class="jsdoc-comment">/**
161 * Format a number as US currency
162 * @param {Number/String} value The numeric value to format
163 * @return {String} The formatted currency string
165 </span><span class="jsdoc-var">usMoney </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
166 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'$' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.util.Format.number</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
169 </span><span class="jsdoc-comment">/**
171 * eventually this should probably emulate php's number_format
172 * @param {Number/String} value The numeric value to format
173 * @param {Number} decimals number of decimal places
174 * @param {String} delimiter for thousands (default comma)
175 * @return {String} The formatted currency string
177 </span><span class="jsdoc-var">number </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">decimals</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">thousandsDelimiter</span><span class="jsdoc-syntax">)
179 </span><span class="jsdoc-comment">// multiply and round.
180 </span><span class="jsdoc-var">decimals </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">decimals</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? 2 : </span><span class="jsdoc-var">decimals</span><span class="jsdoc-syntax">;
181 </span><span class="jsdoc-var">thousandsDelimiter </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">thousandsDelimiter</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">',' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">thousandsDelimiter</span><span class="jsdoc-syntax">;
183 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">mul </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.pow</span><span class="jsdoc-syntax">(10, </span><span class="jsdoc-var">decimals</span><span class="jsdoc-syntax">);
184 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">zero </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">mul</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.substring</span><span class="jsdoc-syntax">(1);
185 </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">Math.round</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">-0)*</span><span class="jsdoc-var">mul</span><span class="jsdoc-syntax">))/</span><span class="jsdoc-var">mul</span><span class="jsdoc-syntax">;
187 </span><span class="jsdoc-comment">// if it's '0' number.. then
189 //v = (v == Math.floor(v)) ? v + "." + zero : ((v*10 == Math.floor(v*10)) ? v + "0" : v);
190 </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
191 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">v.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.'</span><span class="jsdoc-syntax">);
192 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">whole </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">[0];
194 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= /(\d+)(\d{3})/;
195 </span><span class="jsdoc-comment">// add comma's
197 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">thousandsDelimiter.length </span><span class="jsdoc-syntax">!= 0) {
198 </span><span class="jsdoc-var">whole </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">whole.replace</span><span class="jsdoc-syntax">(/\B(?=(\d{3})+(?!\d))/g, </span><span class="jsdoc-var">thousandsDelimiter </span><span class="jsdoc-syntax">);
201 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sub </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">[1] ?
202 </span><span class="jsdoc-comment">// has decimals..
203 </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">decimals </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-string">'.'</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">[1] + </span><span class="jsdoc-var">zero.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">)) : </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) :
204 </span><span class="jsdoc-comment">// does not have decimals
205 </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">decimals </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-string">'.' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">zero</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
208 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">whole </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">sub </span><span class="jsdoc-syntax">;
211 </span><span class="jsdoc-comment">/**
212 * Parse a value into a formatted date using the specified format pattern.
213 * @param {Mixed} value The value to format
214 * @param {String} format (optional) Any valid date format string (defaults to 'm/d/Y')
215 * @return {String} The formatted date string
217 </span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">format</span><span class="jsdoc-syntax">){
218 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
219 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">;
221 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!(</span><span class="jsdoc-var">v </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">)){
222 </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Date.parse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">));
224 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">v.dateFormat</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Roo.util.Format.defaults.date</span><span class="jsdoc-syntax">);
227 </span><span class="jsdoc-comment">/**
228 * Returns a date rendering function that can be reused to apply a date format multiple times efficiently
229 * @param {String} format Any valid date format string
230 * @return {Function} The date formatting function
232 </span><span class="jsdoc-var">dateRenderer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">format</span><span class="jsdoc-syntax">){
233 </span><span class="jsdoc-keyword">return function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
234 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.util.Format.date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">format</span><span class="jsdoc-syntax">);
238 </span><span class="jsdoc-comment">// private
239 </span><span class="jsdoc-var">stripTagsRE </span><span class="jsdoc-syntax">: /<\/?[^>]+>/gi,
241 </span><span class="jsdoc-comment">/**
242 * Strips all HTML tags
243 * @param {Mixed} value The text from which to strip tags
244 * @return {String} The stripped text
246 </span><span class="jsdoc-var">stripTags </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
247 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">!</span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.stripTagsRE</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">);
251 </span><span class="jsdoc-var">Roo.util.Format.defaults </span><span class="jsdoc-syntax">= {
252 </span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'d/M/Y'
253 </span><span class="jsdoc-syntax">};</span></code></body></html>