这里面只列出JavaScript中没有的函数。
现在就不作解释了,主要看代码吧。
不使用原型编写的代码:
/**
* <pre>
* 截取一个字符串,若它超过指定的长度,并在其后面增加一个省略号('...')
* </pre>
* @param value 需要截取的字符串
* @param len 允许截取的最大长度
* @returns 返回转换后的字符串
*/
function ellipsis(value, len){
if(value && value.length > len){
return value.substr(0, len-3)+"...";
}
return value;
}
/**
* <pre>
* 判断一个字符串是否为日期类型
* </pre>
* @param value 字符串
* @returns {Boolean} 是返回true,否返回false
*/
function isDate(value){
return value && typeof value.getFullYear == 'function';
}
/**
* <pre>
* 把日期字符串格式化
* </pre>
* @param value 日期字符串(不支持格式:2010.12.23)
* @param format 格式:默认为:yyyy-MM-dd
* @returns 返回格式化后的字符串
*/
function date(value, format){
if(!value){
return "";
}
if(!isDate(value)){
value = new Date(Date.parse(value));
}
return value.dateFormat(format || "yyyy-MM-dd");
}
/**
* <pre>
* 简单格式一个文件大小(xxx bytes, xxx KB, xxx MB, xxxGB).
* </pre>
* @param size 文件大小的数字
* @return 格式后字符串
*/
function fileSize(size){
if(size < 1024) {
return size + " bytes";
} else if(size < 1048576) {
return (Math.round(((size*10) / 1024))/10) + " KB";
} else if(size < 1073741824){
return (Math.round(((size*10) / 1048576))/10) + " MB";
} else if(size < 1099511627776){
return (Math.round(((size*10) / 1073741824))/10) + " GB";
} else {
return (Math.round(((size*10) / 1099511627776))/10) + " TB";
}
}
/**
* <pre>
* 在字符串前面补一个特殊的字符,这在数字和日期字符串中非常好用。
* String val = leftPad("123", 5, "0");
* val就变成了 "00123"
*
* </pre>
* @param str 原始字符串
* @param size 输出字符串的总长度
* @param ch 它是加在原始字符串前的字符,默认为" ";
* @returns 返回填补后的字符串
*/
function leftPad(str,size,ch){
var s = new String(str);
if(!ch){
ch = " ";
}
while(s.length < size){
s = ch + s;
}
return s.toString();
}
/**
* <pre>
* 字符串去前后空格
* </pre>
* @param str 原始字符串
* @returns 去空格后字符串
*/
function trim(str){
var pattern = /^\s+|\s+$/g;
return str.replace(pattern,"");
}
/**
* <pre>
* 字符串去前空格
* </pre>
* @param str 原始字符串
* @returns 去空格后字符串
*/
function leftTrim(str){
var pattern = /^\s+/g;
return str.replace(pattern,"");
}
/**
* <pre>
* 字符串去后空格
* </pre>
* @param str 原始字符串
* @returns 去空格后字符串
*/
function rightTrim(str){
var pattern = /\s+$/g;
return str.replace(pattern,"");
}
使用原型写的代码:
/**
* <pre>
* 把日期格式化
* y:年
* M:月
* d:日
* h:小时
* m:分
* s:秒
* q:刻
* S:毫秒
* </pre>
* @param format 格式
* @returns 返回格式化后的字符串
*/
Date.prototype.dateFormat = function(format) {
var o = {
"M+" : this.getMonth() + 1, // month
"d+" : this.getDate(), // day
"h+" : this.getHours(), // hour
"m+" : this.getMinutes(), // minute
"s+" : this.getSeconds(), // second
"q+" : Math.floor((this.getMonth() + 3) / 3), // quarter
"S" : this.getMilliseconds()
// millisecond
};
if (/(y+)/.test(format)){
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for ( var k in o){
if (new RegExp("(" + k + ")").test(format)){
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
};
/**
* copyRight xxx
* <pre>
* 使用原型实现,其中大部分代码参考了Ext2.0.2版本的代码,
* 或者直接引用了其代码
* </pre>
* author:pansen
* version:v1.0
* */
/**
* <pre>
* 使用String的prototype的形式,即可以使用"aa".ellipsis(20);
* 截取一个字符串,若它超过指定的长度,并在其后面增加一个省略号('...')
* </pre>
* @param len 允许截取的最大长度
* @returns 返回转换后的字符串
*/
String.prototype.ellipsis=function(len){
if(this && this.length > len){
return this.substring(0, len-3)+"...";
}
return this;
};
/**
* <pre>
* 把日期字符串格式化
* 日期字符串(不支持格式:2010.12.23)
* </pre>
* @param format 格式:默认为:yyyy-MM-dd
* @returns 返回格式化后的字符串
*/
String.prototype.date = function(format){
var str = this;
if(!str){
return "";
}
if(!isDate(str)){
str = new Date(Date.parse(str));
}
return str.dateFormat(format || "yyyy-MM-dd");
};
/**
* <pre>
* 在字符串前面补一个特殊的字符,这在数字和日期字符串中非常好用。
* String val = "123".leftPad(5, "0");
* val就变成了 "00123"
*
* </pre>
* @param size 输出字符串的总长度
* @param ch 它是加在原始字符串前的字符,默认为" ";
* @returns 返回填补后的字符串
*/
String.prototype.leftPad=function(size,ch){
var s = this;
if(!ch){
ch = " ";
}
while(s.length < size){
s = ch + s;
}
return s;
};
/**
* <pre>
* 字符串去前后空格
* </pre>
* @returns 去空格后字符串
*/
String.prototype.trim = function(){
var pattern = /^\s+|\s+$/g;
return this.replace(pattern,"");
};
/**
* <pre>
* 字符串去前空格
* </pre>
* @returns 去空格后字符串
*/
String.prototype.leftTrim = function(){
var pattern = /^\s+$/g;
return this.replace(pattern,"");
};
/**
* <pre>
* 字符串去后空格
* </pre>
* @returns 去空格后字符串
*/
String.prototype.rightTrim = function(){
var pattern = /\s+$/g;
return this.replace(pattern,"");
};