Fix #5681 - fix bootstrap4 detection
[roojs1] / docs / src / String.js.html
1 <html><head><title>String.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">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11
12 </span><span class="jsdoc-var">Roo.applyIf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">, {
13
14     </span><span class="jsdoc-comment">/** @scope String */
15
16     /**
17      * Escapes the passed string for ' and \
18      * @param {String} string The string to escape
19      * @return {String} The escaped string
20      * @static
21      */
22     </span><span class="jsdoc-var">escape </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">string</span><span class="jsdoc-syntax">) {
23         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">string.replace</span><span class="jsdoc-syntax">(/('|\\)/g, </span><span class="jsdoc-string">&quot;\\$1&quot;</span><span class="jsdoc-syntax">);
24     },
25
26     </span><span class="jsdoc-comment">/**
27      * Pads the left side of a string with a specified character.  This is especially useful
28      * for normalizing number and date strings.  Example usage:
29      * &lt;pre&gt;&lt;code&gt;
30 var s = String.leftPad('123', 5, '0');
31 // s now contains the string: '00123'
32 &lt;/code&gt;&lt;/pre&gt;
33      * @param {String} string The original string
34      * @param {Number} size The total length of the output string
35      * @param {String} char (optional) The character with which to pad the original string (defaults to empty string &quot; &quot;)
36      * @return {String} The padded string
37      * @static
38      */
39     </span><span class="jsdoc-var">leftPad </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">size</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ch</span><span class="jsdoc-syntax">) {
40         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">result </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">);
41         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ch </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">null </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ch </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ch </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) {
42             </span><span class="jsdoc-var">ch </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot; &quot;</span><span class="jsdoc-syntax">;
43         }
44         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">result.length </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">size</span><span class="jsdoc-syntax">) {
45             </span><span class="jsdoc-var">result </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ch </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">result</span><span class="jsdoc-syntax">;
46         }
47         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">result</span><span class="jsdoc-syntax">;
48     },
49
50     </span><span class="jsdoc-comment">/**
51      * Allows you to define a tokenized string and pass an arbitrary number of arguments to replace the tokens.  Each
52      * token must be unique, and must increment in the format {0}, {1}, etc.  Example usage:
53      * &lt;pre&gt;&lt;code&gt;
54 var cls = 'my-class', text = 'Some text';
55 var s = String.format('&lt;div class=&quot;{0}&quot;&gt;{1}&lt;/div&gt;', cls, text);
56 // s now contains the string: '&lt;div class=&quot;my-class&quot;&gt;Some text&lt;/div&gt;'
57 &lt;/code&gt;&lt;/pre&gt;
58      * @param {String} string The tokenized string to be formatted
59      * @param {String} value1 The value to replace token {0}
60      * @param {String} value2 Etc...
61      * @return {String} The formatted string
62      * @static
63      */
64     </span><span class="jsdoc-var">format </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">){
65         </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">, 1);
66         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">format.replace</span><span class="jsdoc-syntax">(/\{(\d+)\}/g, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">){
67             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.util.Format.htmlEncode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">args</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
68         });
69     }
70
71
72 });
73
74 </span><span class="jsdoc-comment">/**
75  * Utility function that allows you to easily switch a string between two alternating values.  The passed value
76  * is compared to the current string, and if they are equal, the other value that was passed in is returned.  If
77  * they are already different, the first value passed in is returned.  Note that this method returns the new value
78  * but does not change the current string.
79  * &lt;pre&gt;&lt;code&gt;
80 // alternate sort directions
81 sort = sort.toggle('ASC', 'DESC');
82
83 // instead of conditional logic:
84 sort = (sort == 'ASC' ? 'DESC' : 'ASC');
85 &lt;/code&gt;&lt;/pre&gt;
86  * @param {String} value The value to compare to the current string
87  * @param {String} other The new value to use if the string already equals the first value passed in
88  * @return {String} The new value
89  */
90
91 </span><span class="jsdoc-var">String.prototype.toggle </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">other</span><span class="jsdoc-syntax">){
92     </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">other </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
93 };
94
95
96 </span><span class="jsdoc-comment">/**
97   * Remove invalid unicode characters from a string 
98   *
99   * @return {String} The clean string
100   */
101 </span><span class="jsdoc-var">String.prototype.unicodeClean </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
102     </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.replace</span><span class="jsdoc-syntax">(/[\s\S]/g,
103         </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character</span><span class="jsdoc-syntax">) {
104             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character.charCodeAt</span><span class="jsdoc-syntax">()&lt; 256) {
105               </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">character</span><span class="jsdoc-syntax">;
106            }
107            </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
108                 </span><span class="jsdoc-var">encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character</span><span class="jsdoc-syntax">);
109            } </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
110               </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
111            }
112            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">character</span><span class="jsdoc-syntax">;
113         }
114     );
115 };
116
117 </span></code></body></html>