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