转自:http://blog.csdn.net/qq415734794/article/details/7895496

  1. /* 
  2. * 系统中JS的扩展函数 
  3. * 
  4. * 
  5. */  
  6.   
  7. // 清除两边的空格  
  8. String.prototype.trim = function() {  
  9.     return this.replace(/(^\s*)|(\s*$)/g, '');  
  10. };  
  11. // 合并多个空白为一个空白  
  12. String.prototype.ResetBlank = function() {  
  13.     var regEx = /\s+/g;  
  14.     return this.replace(regEx, ' ');  
  15. };  
  16.   
  17. // 保留数字  
  18. String.prototype.GetNum = function() {  
  19.     var regEx = /[^\d]/g;  
  20.     return this.replace(regEx, '');  
  21. };  
  22.   
  23. // 保留中文  
  24. String.prototype.GetCN = function() {  
  25.     var regEx = /[^\u4e00-\u9fa5\uf900-\ufa2d]/g;  
  26.     return this.replace(regEx, '');  
  27. };  
  28.   
  29. // String转化为Number  
  30. String.prototype.ToInt = function() {  
  31.     return isNaN(parseInt(this)) ? this.toString() : parseInt(this);  
  32. };  
  33.   
  34. // 得到字节长度  
  35. String.prototype.GetLen = function() {  
  36.     var regEx = /^[\u4e00-\u9fa5\uf900-\ufa2d]+$/;  
  37.     if (regEx.test(this)) {  
  38.         return this.length * 2;  
  39.     } else {  
  40.         var oMatches = this.match(/[\x00-\xff]/g);  
  41.         var oLength = this.length * 2 - oMatches.length;  
  42.         return oLength;  
  43.     }  
  44. };  
  45.   
  46. // 获取文件全名  
  47. String.prototype.GetFileName = function() {  
  48.     var regEx = /^.*\/([^\/\?]*).*$/;  
  49.     return this.replace(regEx, '$1');  
  50. };  
  51.   
  52. // 获取文件扩展名  
  53. String.prototype.GetExtensionName = function() {  
  54.     var regEx = /^.*\/[^\/]*(\.[^\.\?]*).*$/;  
  55.     return this.replace(regEx, '$1');  
  56. };  
  57.   
  58. /******add By 刘景宁 2010-12-09 *******/  
  59. String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) {  
  60.     if (!RegExp.prototype.isPrototypeOf(reallyDo)) {  
  61.         return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi" : "g")), replaceWith);  
  62.     } else {  
  63.         return this.replace(reallyDo, replaceWith);  
  64.     }  
  65. };  
  66. //格式化字符串 add By 刘景宁 2010-12-09   
  67. String.Format = function() {  
  68.     if (arguments.length == 0) {  
  69.         return '';  
  70.     }  
  71.   
  72.     if (arguments.length == 1) {  
  73.         return arguments[0];  
  74.     }  
  75.   
  76.     var reg = /{(\d+)?}/g;  
  77.     var args = arguments;  
  78.     var result = arguments[0].replace(reg, function($0, $1) {  
  79.         return args[parseInt($1) + 1];  
  80.     });  
  81.     return result;  
  82. };  
  83.   
  84. // 数字补零  
  85. Number.prototype.LenWithZero = function(oCount) {  
  86.     var strText = this.toString();  
  87.     while (strText.length < oCount) {  
  88.         strText = '0' + strText;  
  89.     }  
  90.     return strText;  
  91. };  
  92.   
  93. // Unicode还原  
  94. Number.prototype.ChrW = function() {  
  95.     return String.fromCharCode(this);  
  96. };  
  97.   
  98. // 数字数组由小到大排序  
  99. Array.prototype.Min2Max = function() {  
  100.     var oValue;  
  101.     for (var i = 0; i < this.length; i++) {  
  102.         for (var j = 0; j <= i; j++) {  
  103.             if (this[i] < this[j]) {  
  104.                 oValue = this[i];  
  105.                 this[i] = this[j];  
  106.                 this[j] = oValue;  
  107.             }  
  108.         }  
  109.     }  
  110.     return this;  
  111. };  
  112.   
  113. // 数字数组由大到小排序  
  114. Array.prototype.Max2Min = function() {  
  115.     var oValue;  
  116.     for (var i = 0; i < this.length; i++) {  
  117.         for (var j = 0; j <= i; j++) {  
  118.             if (this[i] > this[j]) {  
  119.                 oValue = this[i];  
  120.                 this[i] = this[j];  
  121.                 this[j] = oValue;  
  122.             }  
  123.         }  
  124.     }  
  125.     return this;  
  126. };  
  127.   
  128. // 获得数字数组中最大项  
  129. Array.prototype.GetMax = function() {  
  130.     var oValue = 0;  
  131.     for (var i = 0; i < this.length; i++) {  
  132.         if (this[i] > oValue) {  
  133.             oValue = this[i];  
  134.         }  
  135.     }  
  136.     return oValue;  
  137. };  
  138.   
  139. // 获得数字数组中最小项  
  140. Array.prototype.GetMin = function() {  
  141.     var oValue = 0;  
  142.     for (var i = 0; i < this.length; i++) {  
  143.         if (this[i] < oValue) {  
  144.             oValue = this[i];  
  145.         }  
  146.     }  
  147.     return oValue;  
  148. };  
  149.   
  150. // 获取当前时间的中文形式  
  151. Date.prototype.GetCNDate = function() {  
  152.     var oDateText = '';  
  153.     oDateText += this.getFullYear().LenWithZero(4) + new Number(24180).ChrW();  
  154.     oDateText += this.getMonth().LenWithZero(2) + new Number(26376).ChrW();  
  155.     oDateText += this.getDate().LenWithZero(2) + new Number(26085).ChrW();  
  156.     oDateText += this.getHours().LenWithZero(2) + new Number(26102).ChrW();  
  157.     oDateText += this.getMinutes().LenWithZero(2) + new Number(20998).ChrW();  
  158.     oDateText += this.getSeconds().LenWithZero(2) + new Number(31186).ChrW();  
  159.     oDateText += new Number(32).ChrW() + new Number(32).ChrW() + new Number(26143).ChrW() + new Number(26399).ChrW() + new String('26085199682010819977222352011620845').substr(this.getDay() * 5, 5).ToInt().ChrW();  
  160.     return oDateText;  
  161. };  
  162. //扩展Date格式化  
  163. Date.prototype.Format = function(format) {  
  164.     var o = {  
  165.         "M+"this.getMonth() + 1, //月份           
  166.         "d+"this.getDate(), //日           
  167.         "h+"this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时           
  168.         "H+"this.getHours(), //小时           
  169.         "m+"this.getMinutes(), //分           
  170.         "s+"this.getSeconds(), //秒           
  171.         "q+": Math.floor((this.getMonth() + 3) / 3), //季度           
  172.         "S"this.getMilliseconds() //毫秒           
  173.     };  
  174.     var week = {  
  175.         "0""\u65e5",  
  176.         "1""\u4e00",  
  177.         "2""\u4e8c",  
  178.         "3""\u4e09",  
  179.         "4""\u56db",  
  180.         "5""\u4e94",  
  181.         "6""\u516d"  
  182.     };  
  183.     if (/(y+)/.test(format)) {  
  184.         format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));  
  185.     }  
  186.     if (/(E+)/.test(format)) {  
  187.         format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "\u661f\u671f" : "\u5468") : "") + week[this.getDay() + ""]);  
  188.     }  
  189.     for (var k in o) {  
  190.         if (new RegExp("(" + k + ")").test(format)) {  
  191.             format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));  
  192.         }  
  193.     }  
  194.     return format;  
  195. }  
  196. Date.prototype.Diff = function(interval, objDate) {  
  197.     //若参数不足或 objDate 不是日期类型則回传 undefined  
  198.     if (arguments.length < 2 || objDate.constructor != Date) { return undefined; }  
  199.     switch (interval) {  
  200.         //计算秒差                                                          
  201.         case 's'return parseInt((objDate - this) / 1000);  
  202.             //计算分差  
  203.         case 'n'return parseInt((objDate - this) / 60000);  
  204.             //计算時差  
  205.         case 'h'return parseInt((objDate - this) / 3600000);  
  206.             //计算日差  
  207.         case 'd'return parseInt((objDate - this) / 86400000);  
  208.             //计算周差  
  209.         case 'w'return parseInt((objDate - this) / (86400000 * 7));  
  210.             //计算月差  
  211.         case 'm'return (objDate.getMonth() + 1) + ((objDate.getFullYear() - this.getFullYear()) * 12) - (this.getMonth() + 1);  
  212.             //计算年差  
  213.         case 'y'return objDate.getFullYear() - this.getFullYear();  
  214.             //输入有误  
  215.         defaultreturn undefined;  
  216.     }  
  217. };  
  218.   
  219. //检测是否为空  
  220. Object.prototype.IsNullOrEmpty = function() {  
  221.     var obj = this;  
  222.     var flag = false;  
  223.     if (obj == null || obj == undefined || typeof (obj) == 'undefined' || obj == '') {  
  224.         flag = true;  
  225.     } else if (typeof (obj) == 'string') {  
  226.         obj = obj.trim();  
  227.         if (obj == '') {//为空  
  228.             flag = true;  
  229.         } else {//不为空  
  230.             obj = obj.toUpperCase();  
  231.             if (obj == 'NULL' || obj == 'UNDEFINED' || obj == '{}') {  
  232.                 flag = true;  
  233.             }  
  234.         }  
  235.     }  
  236.     else {  
  237.         flag = false;  
  238.     }  
  239.     return flag;  
  240. };  


本文转载:CSDN博客