JavaScript函数备份(大部分参考EXT2.0.2)

内容纲要

这里面只列出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,"");
};

 

转自:http://blog.csdn.net/psyuhen/article/details/7356942