先来说trim方法
//去掉前后空格
String.prototype.trim = function(){
return this.replace(/(^/s*)|(/s*$)/g,"");
}
function test(){
alert( "w"+" an ".trim()+"g") //alert出wang
}
去掉字符串开头的零
String.prototype.toAvailableNumber = function(){
return this.replace(/^[0]*/g,"");
}
//以下三个方法是模拟Date类中的三个方法
String.prototype.getYear = function(){
var arr = this.split(//D/) ;
if(arr=="") return "Date is null " ;
if(arr.length==1) return this.substring(0,4) ;
if(arr.length!=3) return " Date Format Error";
return arr[0] ;
}
//2009123看成2009-12-3 return 11
//2009011看成2009-01-1 return 0
//20095121看成2009-5-12 return 4
String.prototype.getMonth = function(){
var arr = this.split(//D/) ;
var dateLen = this.length ;
if(arr.length==1){
if(dateLen==6) {
return this.substring(4,5)-1;
}else if(dateLen==7||dateLen==8) {
var month = this.substring(4,6).toAvailableNumber() ;
if((month>0)&&(month<13)){
return month-1 ;
}else{
return this.substring(4,5)-1 ;
}
}else{
return "Date format error" ;
}
}
if(arr.length!=3) return " Date Format Error";
var month = arr[1].toAvailableNumber() ;
if((month>0)&&(month<13)){
return month-1 ;
}else{
return month.substring(0,1)-1 ;
}
}
String.prototype.getDate = function(){
var arr = this.split(//D/) ;
var dateLen = this.length ;
if(arr.length==1){
if(dateLen==6) {
return this.substring(5,6);
}else if((dateLen==7)||(dateLen==8)){
var month = this.substring(4,6).toAvailableNumber() ;
if((month>0)&&(month<13)){
var date = this.substring(6,dateLen).toAvailableNumber() ;
if(date<32&&date>0){
return date;
}else{
return this.substring(6,7).toAvailableNumber();
}
}else{
var date = this.substring(5,dateLen).toAvailableNumber() ;
if(date<32&&date>0){
return date;
}else{
var date = this.substring(5,dateLen-1).toAvailableNumber();
if(date<32&&date>0){
return date;
}else{
return this.substring(5,6).toAvailableNumber();
}
}
}
}
return "Date format error" ;
}
if(arr.length!=3) return " Date Format Error";
var day = arr[2].toAvailableNumber() ;
if(day<32&&day>0){
return day;
}else{
return day.substring(0,1);
}
}
这样一来就能和Date类中的方法保持一至
//写一个静态方法来得到二个日期间的相差毫秒数
Date.distanceTowDay=function(startDate,endDate){
var st = Date.UTC(startDate.getYear(), parseInt(startDate.getMonth())+1, startDate.getDate());
var end = Date.UTC(endDate.getYear(), parseInt(endDate.getMonth())+1, endDate.getDate());
return end-st ;
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<script src="D://data_information//self_study//JavaScript//self//js//Date.js"></script>
<script src="D://data_information//self_study//JavaScript//self//js//String.js"></script>
<SCRIPT LANGUAGE="JavaScript">
<!--
function test(){
var date = document.getElementById("dateTest").value;
// 这里的date是String对象,new Date()是日期对象
var distance = parseInt(Date.distanceTowDay(date,new Date()))/(3600*24*1000) ;
alert(distance);
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE="text" id="dateTest">
<INPUT TYPE="button" id="wangbutton" VALUE="button" ONCLICK="test()">
//你可以输入2009-12-1 或 2009/12/1或20091201或2009121这些都能算出2009-12-1距现在有多少天
</BODY>
</HTML>