javascript函数库:core.js

原创 2005年05月24日 14:56:00

/**
core.js
version 1.2
author  treeroot
since   2005-5-24
*/


//Object
Object.prototype.getClass=function(){
 //var s=Object.prototype.toString.apply(this);
 //return s.match(//[object (/w+)/]/)[1];
 //just work for system class
 var s=this.constructor.toString();
 return s.match(/function (/w+)/(.+/)[1];
}
Object.prototype.hashCode=function(){
 var h=0;
 var s=this.toString();
 for (var i = 0; i < s.length; i++) {
  h = 31*h + s.charCodeAt(i);
 }
 return h;
}
//protected used in subclass
Object.prototype.typeMatches=function(obj){
 return this.getClass()===obj.getClass();
}
//

Object.prototype.equals=function(obj){
 if(!this.typeMatches(obj)) return false;
 return this.toString()===obj.toString();
}

//String

String.prototype.equalsIgnoreCase=function(str){
 if(str.getClass()!="String") return false;
 return this.toUpperCase()===str.toUpperCase();
}
String.prototype.compareTo=function(str){
 if(!this.typeMatches(str)) throw "Type Mismacth!";
 var s1=this.toString();
 var s2=str.toString();
 if(s1===s2) return 0;
 else if(s1>s2) return 1;
 else return -1;
}
String.prototype.compareToIgnoreCase=function(str){
 if(!this.typeMatches(str)) throw "Type Mismacth!";
 var s1=this.toUpperCase();
 var s2=str.toUpperCase();
 if(s1===s2) return 0;
 else if(s1>s2) return 1;
 else return -1;
}


String.prototype.startsWith=function(prefix){
 return this.substring(0,prefix.length)==prefix;
}
String.prototype.endsWith=function(suffix){
 return this.substring(this.length-suffix.length)==suffix;
}

String.prototype.concat=function(str){
 return new String(this.toString()+str);
}

String.prototype.toCharArray=function(){
 var charArr=new Array();
 for(var i=0;i<this.length;i++) charArr[i]=this.charAt(i);
 return charArr;
}
String.prototype.trim=function(){
 return this.replace(/(^/s*)|(/s*$)/g,"");
}

//Number

Number.prototype.hashCode=function(){
 //just for int,not for double
 return (this);
}
Number.prototype.equals=function(obj){
 if(!this.typeMatches(obj)) return false;
 return this.toString()==obj.toString();
}
 
Number.prototype.compareTo=function(obj){
 if(!this.typeMatches(obj)) return false;
 return this-obj;
}
Number.toHexString=function(i){
 return i.toString(16);
}
Number.toBinaryString=function(i){
 return i.toString(2);
}

//Date

Date.prototype.hashCode=function(){
 var l=this.getTime();
 var s=Number.toHexString(l);
 
 var high=0;
 if(s.length>8) high=parseInt(s.substring(0,s.length-8),16);
 
 var low=l & 0xffffffff;
 return low^high;
}
Date.prototype.equals=function(obj){
 if(!this.typeMatches(obj)) return false;
 return this.getTime()==obj.getTime();
}
 
Date.prototype.compareTo=function(obj){
 if(!this.typeMatches(obj)) return false;
 return (this.getTime()-obj.getTime())& 0xffffffff;
}

discuz!X2核心函数库function_core说明

转载自:http://www.oicto.com/discuzx2-function_core/discuz!X2核心函数库function_core说明/*** 系统错误处理* @param <...

discuz核心函数库function_core的函数注释

/**  * 系统错误处理  * @param $message 错误信息  * @param $show 是否显示信息  * @param $save 是否存入日志  * @para...

discuz核心函数库function_core的函数注释

/**  * 系统错误处理  * @param $message 错误信息  * @param $show 是否显示信息  * @param $save 是否存入日志  * @para...

javascript函数库(全) .txt

  • 2008年07月08日 09:50
  • 12KB
  • 下载

JS函数库的使用

  • 2015年12月15日 14:58
  • 1.06MB
  • 下载

一个改变JAVASCRIPT编程模式的函数库

做为一个老程序,有着20年的编程经验,常年从各个社区以及互联网吸取各种知识,付出甚少,常常抱着羞愧的心。其实很重要的一个问题是文笔太差,而且太忙于技术,总是闲不下来把自己的知识分享给大家。 今天,痛...

base64js加密函数库

  • 2016年04月27日 22:51
  • 3KB
  • 下载

通用js函数库

  • 2012年07月16日 14:37
  • 22KB
  • 下载

JavaScript我的常用函数库

以下是小宝鸽平时收藏的一些常用JavaScript函数,下面无私分享给各位猿友:1. 检验是否数字 2. 校验起止日期要小于结束日期 3. 获取当前日期 4. 获取上一个月的第一天 5...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript函数库:core.js
举报原因:
原因补充:

(最多只允许输入30个字)