String.length
作用:這實際上是 String 類的一個屬性,但是由於 JavaScript 將全形、半形均視為是一個字元,在一些實際運用中可能會造成一定的問題,現在我們通過 prototype 來彌補這部不足。
實現方法:
String.prototype.cnLength = function(){
var arr=this.match(/[^\x00-\xff]/ig);
return this.length+(arr==null?0:arr.length);
}
實驗:alert("EaseWe空間Spaces".cnLength()) -> 顯示 16
這裡用到了一些Regex的方法和全形字元的編碼原理。
Date.DayDiff()
作用:計算出兩個日期型變數的間隔時間(年、月、日、周)
實現方法:
Date.prototype.DayDiff = function(cDate,mode){
try{
cDate.getYear();
}catch(e){
return(0);
}
var base =60*60*24*1000;
var result = Math.abs(this - cDate);
switch(mode){
case "y":
result/=base*365;
break;
case "m":
result/=base*365/12;
break;
case "w":
result/=base*7;
break;
default:
result/=base;
break;
}
return(Math.floor(result));
}
實驗:alert((new Date()).DayDiff((new Date(2002,0,1)))) -> 顯示 329
alert((new Date()).DayDiff((new Date(2002,0,1)),"m")) -> 顯示 10
當然,也可以進一步擴充,得出響應的小時、分鐘,甚至是秒。