1
/*
*
2 * 检索数组元素(原型扩展或重载)
3 * @param {o} 被检索的元素值
4 * @type int
5 * @returns 元素索引
6 */
7 Array.prototype.contains = function (o) {
8 var index = - 1 ;
9 for ( var i = 0 ;i < this .length;i ++ ){ if ( this [i] == o){index = i; break ;}}
10 return index;
11 }
12
13 /* *
14 * 日期格式化(原型扩展或重载)
15 * 格式 YYYY/yyyy/YY/yy 表示年份
16 * MM/M 月份
17 * W/w 星期
18 * dd/DD/d/D 日期
19 * hh/HH/h/H 时间
20 * mm/m 分钟
21 * ss/SS/s/S 秒
22 * @param {formatStr} 格式模版
23 * @type string
24 * @returns 日期字符串
25 */
26 Date.prototype.format = function (formatStr){
27 var str = formatStr;
28 var Week = [ ' 日 ' , ' 一 ' , ' 二 ' , ' 三 ' , ' 四 ' , ' 五 ' , ' 六 ' ];
29 str = str.replace( / yyyy|YYYY / , this .getFullYear());
30 str = str.replace( / yy|YY / ,( this .getYear() % 100 ) > 9 ? ( this .getYear() % 100 ).toString(): ' 0 ' + ( this .getYear() % 100 ));
31 str = str.replace( / MM / ,( this .getMonth() + 1 ) > 9 ? ( this .getMonth() + 1 ).toString(): ' 0 ' + ( this .getMonth() + 1 ));
32 str = str.replace( / M / g, this .getMonth());
33 str = str.replace( / w|W / g,Week[ this .getDay()]);
34 str = str.replace( / dd|DD / , this .getDate() > 9 ? this .getDate().toString(): ' 0 ' + this .getDate());
35 str = str.replace( / d|D / g, this .getDate());
36 str = str.replace( / hh|HH / , this .getHours() > 9 ? this .getHours().toString(): ' 0 ' + this .getHours());
37 str = str.replace( / h|H / g, this .getHours());
38 str = str.replace( / mm / , this .getMinutes() > 9 ? this .getMinutes().toString(): ' 0 ' + this .getMinutes());
39 str = str.replace( / m / g, this .getMinutes());
40 str = str.replace( / ss|SS / , this .getSeconds() > 9 ? this .getSeconds().toString(): ' 0 ' + this .getSeconds());
41 str = str.replace( / s|S / g, this .getSeconds());
42 return str;
43 }
44
45 /* *
46 * 比较日期差(原型扩展或重载)
47 * @param {strInterval} 日期类型:'y、m、d、h、n、s、w'
48 * @param {dtEnd} 格式为日期型或者 有效日期格式字符串
49 * @type int
50 * @returns 比较结果
51 */
52 Date.prototype.dateDiff = function (strInterval, dtEnd) {
53 var dtStart = this ;
54 if ( typeof dtEnd == ' string ' ) { // 如果是字符串转换为日期型
55 dtEnd = StringToDate(dtEnd);
56 }
57 switch (strInterval) {
58 case ' s ' : return parseInt((dtEnd - dtStart) / 1000 );
59 case ' n ' : return parseInt((dtEnd - dtStart) / 60000 );
60 case ' h ' : return parseInt((dtEnd - dtStart) / 3600000 );
61 case ' d ' : return parseInt((dtEnd - dtStart) / 86400000 );
62 case ' w ' : return parseInt((dtEnd - dtStart) / ( 86400000 * 7 ));
63 case ' m ' : return (dtEnd.getMonth() + 1 ) + ((dtEnd.getFullYear() - dtStart.getFullYear()) * 12 ) - (dtStart.getMonth() + 1 );
64 case ' y ' : return dtEnd.getFullYear() - dtStart.getFullYear();
65 }
66 }
67
68 /* *
69 * 日期计算(原型扩展或重载)
70 * @param {strInterval} 日期类型:'y、m、d、h、n、s、w'
71 * @param {Number} 数量
72 * @type Date
73 * @returns 计算后的日期
74 */
75 Date.prototype.dateAdd = function (strInterval, Number) {
76 var dtTmp = this ;
77 switch (strInterval) {
78 case ' s ' : return new Date(Date.parse(dtTmp) + ( 1000 * Number));
79 case ' n ' : return new Date(Date.parse(dtTmp) + ( 60000 * Number));
80 case ' h ' : return new Date(Date.parse(dtTmp) + ( 3600000 * Number));
81 case ' d ' : return new Date(Date.parse(dtTmp) + ( 86400000 * Number));
82 case ' w ' : return new Date(Date.parse(dtTmp) + (( 86400000 * 7 ) * Number));
83 case ' q ' : return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number * 3 , dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
84 case ' m ' : return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
85 case ' y ' : return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
86 }
87 }
88
89 /* *
90 * 取得日期数据信息(原型扩展或重载)
91 * @param {interval} 日期类型:'y、m、d、h、n、s、w'
92 * @type int
93 * @returns 指定的日期部分
94 */
95 Date.prototype.datePart = function (interval){
96 var myDate = this ;
97 var partStr = '' ;
98 var Week = [ ' 日 ' , ' 一 ' , ' 二 ' , ' 三 ' , ' 四 ' , ' 五 ' , ' 六 ' ];
99 switch (interval)
100 {
101 case ' y ' :partStr = myDate.getFullYear(); break ;
102 case ' m ' :partStr = myDate.getMonth() + 1 ; break ;
103 case ' d ' :partStr = myDate.getDate(); break ;
104 case ' w ' :partStr = Week[myDate.getDay()]; break ;
105 case ' ww ' :partStr = myDate.WeekNumOfYear(); break ;
106 case ' h ' :partStr = myDate.getHours(); break ;
107 case ' n ' :partStr = myDate.getMinutes(); break ;
108 case ' s ' :partStr = myDate.getSeconds(); break ;
109 }
110 return partStr;
111 }
112
113 /* *
114 * 把日期分割成数组(原型扩展或重载)
115 * @type array
116 * @returns 日期数组
117 */
118 Date.prototype.toArray = function () {
119 var myDate = this ;
120 var myArray = Array();
121 myArray[ 0 ] = myDate.getFullYear();
122 myArray[ 1 ] = myDate.getMonth() + 1 ;
123 myArray[ 2 ] = myDate.getDate();
124 myArray[ 3 ] = myDate.getHours();
125 myArray[ 4 ] = myDate.getMinutes();
126 myArray[ 5 ] = myDate.getSeconds();
127 return myArray;
128 }
129
130 /* *
131 * 取得当前月份的天数(原型扩展或重载)
132 * @type int
133 * @returns 天数
134 */
135 Date.prototype.daysOfMonth = function (){
136 var myDate = this ;
137 var ary = myDate.toArray();
138 var date1 = ( new Date(ary[ 0 ],ary[ 1 ] + 1 , 1 ));
139 var date2 = date1.dateAdd( ' m ' , 1 );
140 var result = daysDiff(date1.format( ' yyyy-MM-dd ' ),date2.format( ' yyyy-MM-dd ' ));
141 return result;
142 }
143
144 /* *
145 * 判断闰年(原型扩展或重载)
146 * @type boolean
147 * @returns 是否为闰年 true/false
148 */
149 Date.prototype.isLeapYear = function () {
150 return ( 0 == this .getYear() % 4 && (( this .getYear() % 100 != 0 ) || ( this .getYear() % 400 == 0 )));
151 }
152
153 /* *
154 * 比较两个日期的天数差(自定义)
155 * @param {DateOne} 日期一
156 * @param {DateOne} 日期二
157 * @type int
158 * @returns 比较结果
159 */
160 function daysDiff(DateOne,DateTwo)
161 {
162 var OneMonth = DateOne.substring( 5 ,DateOne.lastIndexOf ( ' - ' ));
163 var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ( ' - ' ) + 1 );
164 var OneYear = DateOne.substring( 0 ,DateOne.indexOf ( ' - ' ));
165
166 var TwoMonth = DateTwo.substring( 5 ,DateTwo.lastIndexOf ( ' - ' ));
167 var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ( ' - ' ) + 1 );
168 var TwoYear = DateTwo.substring( 0 ,DateTwo.indexOf ( ' - ' ));
169
170 var cha = ((Date.parse(OneMonth + ' / ' + OneDay + ' / ' + OneYear) - Date.parse(TwoMonth + ' / ' + TwoDay + ' / ' + TwoYear)) / 86400000);
171 return Math.abs(cha);
172 }
173
174 /* *
175 * 日期计算(自定义)
176 * @param {strInterval} 日期类型:'y、m、d、h、n、s、w'
177 * @param {Number} 数量
178 * @param {prmDate} 原日期
179 * @type Date
180 * @returns 计算后的日期
181 */
182 function dateAdd(interval,number,prmDate){
183 number = parseInt(number);
184 if ( typeof (prmDate) == " string " ){
185 prmDate = prmDate.split( / \D / );
186 -- prmDate[ 1 ];
187 eval( " var prmDate = new Date( " + prmDate.join( " , " ) + " ) " );
188 }
189 if ( typeof (prmDate) == " object " ){
190 var prmDate = prmDate
191 }
192 switch (interval){
193 case " y " : prmDate.setFullYear(prmDate.getFullYear() + number); break ;
194 case " m " : prmDate.setMonth(prmDate.getMonth() + number); break ;
195 case " d " : prmDate.setDate(prmDate.getDate() + number); break ;
196 case " w " : prmDate.setDate(prmDate.getDate() + 7 * number); break ;
197 case " h " : prmDate.setHours(prmDate.getHour() + number); break ;
198 case " n " : prmDate.setMinutes(prmDate.getMinutes() + number); break ;
199 case " s " : prmDate.setSeconds(prmDate.getSeconds() + number); break ;
200 case " l " : prmDate.setMilliseconds(prmDate.getMilliseconds() + number); break ;
201 }
202 return prmDate;
203 }
204
205 /* *
206 * 获取字符串长度(原型扩展或重载)
207 * @type int
208 * @returns 字符串长度
209 */
210 String.prototype.len = function () {
211 var arr = this .match( / [^\x00-\xff] / ig);
212 return this .length + (arr == null ? 0 :arr.length);
213 }
214
215 /* *
216 * 字符串左取指定个数的字符(原型扩展或重载)
217 * @param {num} 获取个数
218 * @type string
219 * @returns 匹配的字符串
220 */
221 String.prototype.left = function (num,mode) {
222 if ( ! / \d+ / .test(num)) return ( this );
223 var str = this .substr( 0 ,num);
224 if ( ! mode) return str;
225 var n = str.len() - str.length;
226 num = num - parseInt(n / 2);
227 return this .substr( 0 ,num);
228 }
229
230 /* *
231 * 字符串右取指定个数的字符(原型扩展或重载)
232 * @param {num} 获取个数
233 * @type string
234 * @returns 匹配的字符串
235 */
236 String.prototype.right = function (num,mode) {
237 if ( ! / \d+ / .test(num)) return ( this );
238 var str = this .substr( this .length - num);
239 if ( ! mode) return str;
240 var n = str.len() - str.length;
241 num = num - parseInt(n / 2);
242 return this .substr( this .length - num);
243 }
244
245 /* *
246 * 字符串包含(原型扩展或重载)
247 * @param {string: str} 要搜索的子字符串
248 * @param {bool: mode} 是否忽略大小写
249 * @type int
250 * @returns 匹配的个数
251 */
252 String.prototype.matchCount = function (str,mode) {
253 return eval( " this.match(/( " + str + " )/g " + (mode ? " i " : "" ) + " ).length " );
254 }
255
256 /* *
257 * 去除左右空格(原型扩展或重载)
258 * @type string
259 * @returns 处理后的字符串
260 */
261 String.prototype.trim = function () {
262 return this .replace( / (^\s*)|(\s*$) / g, "" );
263 }
264
265 /* *
266 * 去除左空格(原型扩展或重载)
267 * @type string
268 * @returns 处理后的字符串
269 */
270 String.prototype.lTrim = function () {
271 return this .replace( / (^\s*) / g, "" );
272 }
273
274 /* *
275 * 去除右空格(原型扩展或重载)
276 * @type string
277 * @returns 处理后的字符串
278 */
279 String.prototype.rTrim = function () {
280 return this .replace( / (\s*$) / g, "" );
281 }
282
283 /* *
284 * 字符串转换为日期型(原型扩展或重载)
285 * @type Date
286 * @returns 日期
287 */
288 String.prototype.toDate = function () {
289 var converted = Date.parse( this );
290 var myDate = new Date(converted);
291 if (isNaN(myDate)) { var arys = this .split( ' - ' ); myDate = new Date(arys[ 0 ], -- arys[ 1 ],arys[ 2 ]); }
292 return myDate;
293 }
2 * 检索数组元素(原型扩展或重载)
3 * @param {o} 被检索的元素值
4 * @type int
5 * @returns 元素索引
6 */
7 Array.prototype.contains = function (o) {
8 var index = - 1 ;
9 for ( var i = 0 ;i < this .length;i ++ ){ if ( this [i] == o){index = i; break ;}}
10 return index;
11 }
12
13 /* *
14 * 日期格式化(原型扩展或重载)
15 * 格式 YYYY/yyyy/YY/yy 表示年份
16 * MM/M 月份
17 * W/w 星期
18 * dd/DD/d/D 日期
19 * hh/HH/h/H 时间
20 * mm/m 分钟
21 * ss/SS/s/S 秒
22 * @param {formatStr} 格式模版
23 * @type string
24 * @returns 日期字符串
25 */
26 Date.prototype.format = function (formatStr){
27 var str = formatStr;
28 var Week = [ ' 日 ' , ' 一 ' , ' 二 ' , ' 三 ' , ' 四 ' , ' 五 ' , ' 六 ' ];
29 str = str.replace( / yyyy|YYYY / , this .getFullYear());
30 str = str.replace( / yy|YY / ,( this .getYear() % 100 ) > 9 ? ( this .getYear() % 100 ).toString(): ' 0 ' + ( this .getYear() % 100 ));
31 str = str.replace( / MM / ,( this .getMonth() + 1 ) > 9 ? ( this .getMonth() + 1 ).toString(): ' 0 ' + ( this .getMonth() + 1 ));
32 str = str.replace( / M / g, this .getMonth());
33 str = str.replace( / w|W / g,Week[ this .getDay()]);
34 str = str.replace( / dd|DD / , this .getDate() > 9 ? this .getDate().toString(): ' 0 ' + this .getDate());
35 str = str.replace( / d|D / g, this .getDate());
36 str = str.replace( / hh|HH / , this .getHours() > 9 ? this .getHours().toString(): ' 0 ' + this .getHours());
37 str = str.replace( / h|H / g, this .getHours());
38 str = str.replace( / mm / , this .getMinutes() > 9 ? this .getMinutes().toString(): ' 0 ' + this .getMinutes());
39 str = str.replace( / m / g, this .getMinutes());
40 str = str.replace( / ss|SS / , this .getSeconds() > 9 ? this .getSeconds().toString(): ' 0 ' + this .getSeconds());
41 str = str.replace( / s|S / g, this .getSeconds());
42 return str;
43 }
44
45 /* *
46 * 比较日期差(原型扩展或重载)
47 * @param {strInterval} 日期类型:'y、m、d、h、n、s、w'
48 * @param {dtEnd} 格式为日期型或者 有效日期格式字符串
49 * @type int
50 * @returns 比较结果
51 */
52 Date.prototype.dateDiff = function (strInterval, dtEnd) {
53 var dtStart = this ;
54 if ( typeof dtEnd == ' string ' ) { // 如果是字符串转换为日期型
55 dtEnd = StringToDate(dtEnd);
56 }
57 switch (strInterval) {
58 case ' s ' : return parseInt((dtEnd - dtStart) / 1000 );
59 case ' n ' : return parseInt((dtEnd - dtStart) / 60000 );
60 case ' h ' : return parseInt((dtEnd - dtStart) / 3600000 );
61 case ' d ' : return parseInt((dtEnd - dtStart) / 86400000 );
62 case ' w ' : return parseInt((dtEnd - dtStart) / ( 86400000 * 7 ));
63 case ' m ' : return (dtEnd.getMonth() + 1 ) + ((dtEnd.getFullYear() - dtStart.getFullYear()) * 12 ) - (dtStart.getMonth() + 1 );
64 case ' y ' : return dtEnd.getFullYear() - dtStart.getFullYear();
65 }
66 }
67
68 /* *
69 * 日期计算(原型扩展或重载)
70 * @param {strInterval} 日期类型:'y、m、d、h、n、s、w'
71 * @param {Number} 数量
72 * @type Date
73 * @returns 计算后的日期
74 */
75 Date.prototype.dateAdd = function (strInterval, Number) {
76 var dtTmp = this ;
77 switch (strInterval) {
78 case ' s ' : return new Date(Date.parse(dtTmp) + ( 1000 * Number));
79 case ' n ' : return new Date(Date.parse(dtTmp) + ( 60000 * Number));
80 case ' h ' : return new Date(Date.parse(dtTmp) + ( 3600000 * Number));
81 case ' d ' : return new Date(Date.parse(dtTmp) + ( 86400000 * Number));
82 case ' w ' : return new Date(Date.parse(dtTmp) + (( 86400000 * 7 ) * Number));
83 case ' q ' : return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number * 3 , dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
84 case ' m ' : return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
85 case ' y ' : return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
86 }
87 }
88
89 /* *
90 * 取得日期数据信息(原型扩展或重载)
91 * @param {interval} 日期类型:'y、m、d、h、n、s、w'
92 * @type int
93 * @returns 指定的日期部分
94 */
95 Date.prototype.datePart = function (interval){
96 var myDate = this ;
97 var partStr = '' ;
98 var Week = [ ' 日 ' , ' 一 ' , ' 二 ' , ' 三 ' , ' 四 ' , ' 五 ' , ' 六 ' ];
99 switch (interval)
100 {
101 case ' y ' :partStr = myDate.getFullYear(); break ;
102 case ' m ' :partStr = myDate.getMonth() + 1 ; break ;
103 case ' d ' :partStr = myDate.getDate(); break ;
104 case ' w ' :partStr = Week[myDate.getDay()]; break ;
105 case ' ww ' :partStr = myDate.WeekNumOfYear(); break ;
106 case ' h ' :partStr = myDate.getHours(); break ;
107 case ' n ' :partStr = myDate.getMinutes(); break ;
108 case ' s ' :partStr = myDate.getSeconds(); break ;
109 }
110 return partStr;
111 }
112
113 /* *
114 * 把日期分割成数组(原型扩展或重载)
115 * @type array
116 * @returns 日期数组
117 */
118 Date.prototype.toArray = function () {
119 var myDate = this ;
120 var myArray = Array();
121 myArray[ 0 ] = myDate.getFullYear();
122 myArray[ 1 ] = myDate.getMonth() + 1 ;
123 myArray[ 2 ] = myDate.getDate();
124 myArray[ 3 ] = myDate.getHours();
125 myArray[ 4 ] = myDate.getMinutes();
126 myArray[ 5 ] = myDate.getSeconds();
127 return myArray;
128 }
129
130 /* *
131 * 取得当前月份的天数(原型扩展或重载)
132 * @type int
133 * @returns 天数
134 */
135 Date.prototype.daysOfMonth = function (){
136 var myDate = this ;
137 var ary = myDate.toArray();
138 var date1 = ( new Date(ary[ 0 ],ary[ 1 ] + 1 , 1 ));
139 var date2 = date1.dateAdd( ' m ' , 1 );
140 var result = daysDiff(date1.format( ' yyyy-MM-dd ' ),date2.format( ' yyyy-MM-dd ' ));
141 return result;
142 }
143
144 /* *
145 * 判断闰年(原型扩展或重载)
146 * @type boolean
147 * @returns 是否为闰年 true/false
148 */
149 Date.prototype.isLeapYear = function () {
150 return ( 0 == this .getYear() % 4 && (( this .getYear() % 100 != 0 ) || ( this .getYear() % 400 == 0 )));
151 }
152
153 /* *
154 * 比较两个日期的天数差(自定义)
155 * @param {DateOne} 日期一
156 * @param {DateOne} 日期二
157 * @type int
158 * @returns 比较结果
159 */
160 function daysDiff(DateOne,DateTwo)
161 {
162 var OneMonth = DateOne.substring( 5 ,DateOne.lastIndexOf ( ' - ' ));
163 var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ( ' - ' ) + 1 );
164 var OneYear = DateOne.substring( 0 ,DateOne.indexOf ( ' - ' ));
165
166 var TwoMonth = DateTwo.substring( 5 ,DateTwo.lastIndexOf ( ' - ' ));
167 var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ( ' - ' ) + 1 );
168 var TwoYear = DateTwo.substring( 0 ,DateTwo.indexOf ( ' - ' ));
169
170 var cha = ((Date.parse(OneMonth + ' / ' + OneDay + ' / ' + OneYear) - Date.parse(TwoMonth + ' / ' + TwoDay + ' / ' + TwoYear)) / 86400000);
171 return Math.abs(cha);
172 }
173
174 /* *
175 * 日期计算(自定义)
176 * @param {strInterval} 日期类型:'y、m、d、h、n、s、w'
177 * @param {Number} 数量
178 * @param {prmDate} 原日期
179 * @type Date
180 * @returns 计算后的日期
181 */
182 function dateAdd(interval,number,prmDate){
183 number = parseInt(number);
184 if ( typeof (prmDate) == " string " ){
185 prmDate = prmDate.split( / \D / );
186 -- prmDate[ 1 ];
187 eval( " var prmDate = new Date( " + prmDate.join( " , " ) + " ) " );
188 }
189 if ( typeof (prmDate) == " object " ){
190 var prmDate = prmDate
191 }
192 switch (interval){
193 case " y " : prmDate.setFullYear(prmDate.getFullYear() + number); break ;
194 case " m " : prmDate.setMonth(prmDate.getMonth() + number); break ;
195 case " d " : prmDate.setDate(prmDate.getDate() + number); break ;
196 case " w " : prmDate.setDate(prmDate.getDate() + 7 * number); break ;
197 case " h " : prmDate.setHours(prmDate.getHour() + number); break ;
198 case " n " : prmDate.setMinutes(prmDate.getMinutes() + number); break ;
199 case " s " : prmDate.setSeconds(prmDate.getSeconds() + number); break ;
200 case " l " : prmDate.setMilliseconds(prmDate.getMilliseconds() + number); break ;
201 }
202 return prmDate;
203 }
204
205 /* *
206 * 获取字符串长度(原型扩展或重载)
207 * @type int
208 * @returns 字符串长度
209 */
210 String.prototype.len = function () {
211 var arr = this .match( / [^\x00-\xff] / ig);
212 return this .length + (arr == null ? 0 :arr.length);
213 }
214
215 /* *
216 * 字符串左取指定个数的字符(原型扩展或重载)
217 * @param {num} 获取个数
218 * @type string
219 * @returns 匹配的字符串
220 */
221 String.prototype.left = function (num,mode) {
222 if ( ! / \d+ / .test(num)) return ( this );
223 var str = this .substr( 0 ,num);
224 if ( ! mode) return str;
225 var n = str.len() - str.length;
226 num = num - parseInt(n / 2);
227 return this .substr( 0 ,num);
228 }
229
230 /* *
231 * 字符串右取指定个数的字符(原型扩展或重载)
232 * @param {num} 获取个数
233 * @type string
234 * @returns 匹配的字符串
235 */
236 String.prototype.right = function (num,mode) {
237 if ( ! / \d+ / .test(num)) return ( this );
238 var str = this .substr( this .length - num);
239 if ( ! mode) return str;
240 var n = str.len() - str.length;
241 num = num - parseInt(n / 2);
242 return this .substr( this .length - num);
243 }
244
245 /* *
246 * 字符串包含(原型扩展或重载)
247 * @param {string: str} 要搜索的子字符串
248 * @param {bool: mode} 是否忽略大小写
249 * @type int
250 * @returns 匹配的个数
251 */
252 String.prototype.matchCount = function (str,mode) {
253 return eval( " this.match(/( " + str + " )/g " + (mode ? " i " : "" ) + " ).length " );
254 }
255
256 /* *
257 * 去除左右空格(原型扩展或重载)
258 * @type string
259 * @returns 处理后的字符串
260 */
261 String.prototype.trim = function () {
262 return this .replace( / (^\s*)|(\s*$) / g, "" );
263 }
264
265 /* *
266 * 去除左空格(原型扩展或重载)
267 * @type string
268 * @returns 处理后的字符串
269 */
270 String.prototype.lTrim = function () {
271 return this .replace( / (^\s*) / g, "" );
272 }
273
274 /* *
275 * 去除右空格(原型扩展或重载)
276 * @type string
277 * @returns 处理后的字符串
278 */
279 String.prototype.rTrim = function () {
280 return this .replace( / (\s*$) / g, "" );
281 }
282
283 /* *
284 * 字符串转换为日期型(原型扩展或重载)
285 * @type Date
286 * @returns 日期
287 */
288 String.prototype.toDate = function () {
289 var converted = Date.parse( this );
290 var myDate = new Date(converted);
291 if (isNaN(myDate)) { var arys = this .split( ' - ' ); myDate = new Date(arys[ 0 ], -- arys[ 1 ],arys[ 2 ]); }
292 return myDate;
293 }
宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒