1 | /*
|
---|
2 | * FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
---|
3 | * Copyright (C) 2003-2009 Frederico Caldeira Knabben
|
---|
4 | *
|
---|
5 | * == BEGIN LICENSE ==
|
---|
6 | *
|
---|
7 | * Licensed under the terms of any of the following licenses at your
|
---|
8 | * choice:
|
---|
9 | *
|
---|
10 | * - GNU General Public License Version 2 or later (the "GPL")
|
---|
11 | * http://www.gnu.org/licenses/gpl.html
|
---|
12 | *
|
---|
13 | * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
---|
14 | * http://www.gnu.org/licenses/lgpl.html
|
---|
15 | *
|
---|
16 | * - Mozilla Public License Version 1.1 or later (the "MPL")
|
---|
17 | * http://www.mozilla.org/MPL/MPL-1.1.html
|
---|
18 | *
|
---|
19 | * == END LICENSE ==
|
---|
20 | *
|
---|
21 | * Extensions to the JavaScript Core.
|
---|
22 | *
|
---|
23 | * All custom extensions functions are PascalCased to differ from the standard
|
---|
24 | * camelCased ones.
|
---|
25 | */
|
---|
26 |
|
---|
27 | String.prototype.Contains = function( textToCheck )
|
---|
28 | {
|
---|
29 | return ( this.indexOf( textToCheck ) > -1 ) ;
|
---|
30 | }
|
---|
31 |
|
---|
32 | String.prototype.Equals = function()
|
---|
33 | {
|
---|
34 | var aArgs = arguments ;
|
---|
35 |
|
---|
36 | // The arguments could also be a single array.
|
---|
37 | if ( aArgs.length == 1 && aArgs[0].pop )
|
---|
38 | aArgs = aArgs[0] ;
|
---|
39 |
|
---|
40 | for ( var i = 0 ; i < aArgs.length ; i++ )
|
---|
41 | {
|
---|
42 | if ( this == aArgs[i] )
|
---|
43 | return true ;
|
---|
44 | }
|
---|
45 | return false ;
|
---|
46 | }
|
---|
47 |
|
---|
48 | String.prototype.IEquals = function()
|
---|
49 | {
|
---|
50 | var thisUpper = this.toUpperCase() ;
|
---|
51 |
|
---|
52 | var aArgs = arguments ;
|
---|
53 |
|
---|
54 | // The arguments could also be a single array.
|
---|
55 | if ( aArgs.length == 1 && aArgs[0].pop )
|
---|
56 | aArgs = aArgs[0] ;
|
---|
57 |
|
---|
58 | for ( var i = 0 ; i < aArgs.length ; i++ )
|
---|
59 | {
|
---|
60 | if ( thisUpper == aArgs[i].toUpperCase() )
|
---|
61 | return true ;
|
---|
62 | }
|
---|
63 | return false ;
|
---|
64 | }
|
---|
65 |
|
---|
66 | String.prototype.ReplaceAll = function( searchArray, replaceArray )
|
---|
67 | {
|
---|
68 | var replaced = this ;
|
---|
69 |
|
---|
70 | for ( var i = 0 ; i < searchArray.length ; i++ )
|
---|
71 | {
|
---|
72 | replaced = replaced.replace( searchArray[i], replaceArray[i] ) ;
|
---|
73 | }
|
---|
74 |
|
---|
75 | return replaced ;
|
---|
76 | }
|
---|
77 |
|
---|
78 | String.prototype.StartsWith = function( value )
|
---|
79 | {
|
---|
80 | return ( this.substr( 0, value.length ) == value ) ;
|
---|
81 | }
|
---|
82 |
|
---|
83 | // Extends the String object, creating a "EndsWith" method on it.
|
---|
84 | String.prototype.EndsWith = function( value, ignoreCase )
|
---|
85 | {
|
---|
86 | var L1 = this.length ;
|
---|
87 | var L2 = value.length ;
|
---|
88 |
|
---|
89 | if ( L2 > L1 )
|
---|
90 | return false ;
|
---|
91 |
|
---|
92 | if ( ignoreCase )
|
---|
93 | {
|
---|
94 | var oRegex = new RegExp( value + '$' , 'i' ) ;
|
---|
95 | return oRegex.test( this ) ;
|
---|
96 | }
|
---|
97 | else
|
---|
98 | return ( L2 == 0 || this.substr( L1 - L2, L2 ) == value ) ;
|
---|
99 | }
|
---|
100 |
|
---|
101 | String.prototype.Remove = function( start, length )
|
---|
102 | {
|
---|
103 | var s = '' ;
|
---|
104 |
|
---|
105 | if ( start > 0 )
|
---|
106 | s = this.substring( 0, start ) ;
|
---|
107 |
|
---|
108 | if ( start + length < this.length )
|
---|
109 | s += this.substring( start + length , this.length ) ;
|
---|
110 |
|
---|
111 | return s ;
|
---|
112 | }
|
---|
113 |
|
---|
114 | String.prototype.Trim = function()
|
---|
115 | {
|
---|
116 | // We are not using \s because we don't want "non-breaking spaces to be caught".
|
---|
117 | return this.replace( /(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '' ) ;
|
---|
118 | }
|
---|
119 |
|
---|
120 | String.prototype.LTrim = function()
|
---|
121 | {
|
---|
122 | // We are not using \s because we don't want "non-breaking spaces to be caught".
|
---|
123 | return this.replace( /^[ \t\n\r]*/g, '' ) ;
|
---|
124 | }
|
---|
125 |
|
---|
126 | String.prototype.RTrim = function()
|
---|
127 | {
|
---|
128 | // We are not using \s because we don't want "non-breaking spaces to be caught".
|
---|
129 | return this.replace( /[ \t\n\r]*$/g, '' ) ;
|
---|
130 | }
|
---|
131 |
|
---|
132 | String.prototype.ReplaceNewLineChars = function( replacement )
|
---|
133 | {
|
---|
134 | return this.replace( /\n/g, replacement ) ;
|
---|
135 | }
|
---|
136 |
|
---|
137 | String.prototype.Replace = function( regExp, replacement, thisObj )
|
---|
138 | {
|
---|
139 | if ( typeof replacement == 'function' )
|
---|
140 | {
|
---|
141 | return this.replace( regExp,
|
---|
142 | function()
|
---|
143 | {
|
---|
144 | return replacement.apply( thisObj || this, arguments ) ;
|
---|
145 | } ) ;
|
---|
146 | }
|
---|
147 | else
|
---|
148 | return this.replace( regExp, replacement ) ;
|
---|
149 | }
|
---|
150 |
|
---|
151 | Array.prototype.IndexOf = function( value )
|
---|
152 | {
|
---|
153 | for ( var i = 0 ; i < this.length ; i++ )
|
---|
154 | {
|
---|
155 | if ( this[i] == value )
|
---|
156 | return i ;
|
---|
157 | }
|
---|
158 | return -1 ;
|
---|
159 | }
|
---|