WEB开发网
开发学院网页设计JavaScript javascript通过prototype属性扩充String功能 阅读

javascript通过prototype属性扩充String功能

 2008-11-14 20:02:24 来源:WEB开发网   
核心提示:String.length作用:这实际上是 String 类的一个属性,但是由于 javaScript 将全角、半角均视为是一个字符,javascript通过prototype属性扩充String功能,在一些实际运用中可能会造成一定的问题,现在我们通过 PRototype 来弥补这部不足,也可以进一步扩充,得出响应的小

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
  这里用到了一些正则表达式的方法和全角字符的编码原理。

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
  当然,也可以进一步扩充,得出响应的小时、分钟,甚至是秒。

Tags:javascript 通过 prototype

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接