本文實例講述了JS擴展方法實現技巧。分享給大家供大家參考。具體分析如下:
JS擴展方法與C#的擴展方法非常相似,也是可以鏈式調用的,也是通過對某個類的擴展寫法來實現。這個東西非常好用,如果將預先寫好的方法放到一個js里面引用的話,那么后面寫js將非常有趣。
下面給出一個例子:
<head> <title>測試JS擴展方法</title> <script type="text/javascript"> // 合并多個空白為一個空白 String.prototype.ResetBlank = function() { //對字符串擴展 var regEx = //s+/g; return this.replace(regEx, ' '); }; window.onload = function() { var str = "你 在他想還好嗎?"; alert(str); str = str.ResetBlank(); //這樣就能夠調用了,跟C#的很像吧! alert(str); } </script></head>
好像只是告訴自己有這樣一個東西而已;
下面給出找到的一個非常不錯的js擴展:
// 清除兩邊的空格 String.prototype.trim = function() { return this.replace(/(^/s*)|(/s*$)/g, ''); }; // 合并多個空白為一個空白 String.prototype.ResetBlank = function() { var regEx = //s+/g; return this.replace(regEx, ' '); }; // 保留數字 String.prototype.GetNum = function() { var regEx = /[^/d]/g; return this.replace(regEx, ''); }; // 保留中文 String.prototype.GetCN = function() { var regEx = /[^/u4e00-/u9fa5/uf900-/ufa2d]/g; return this.replace(regEx, ''); }; // String轉化為Number String.prototype.ToInt = function() { return isNaN(parseInt(this)) ? this.toString() : parseInt(this); }; // 得到字節長度 String.prototype.GetLen = function() { var regEx = /^[/u4e00-/u9fa5/uf900-/ufa2d]+$/; if (regEx.test(this)) { return this.length * 2; } else { var oMatches = this.match(/[/x00-/xff]/g); var oLength = this.length * 2 - oMatches.length; return oLength; } }; // 獲取文件全名 String.prototype.GetFileName = function() { var regEx = /^.*//([^///?]*).*$/; return this.replace(regEx, '$1'); }; // 獲取文件擴展名 String.prototype.GetExtensionName = function() { var regEx = /^.*//[^//]*(/.[^/./?]*).*$/; return this.replace(regEx, '$1'); }; //替換所有String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.isPrototypeOf(reallyDo)) { return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi" : "g")), replaceWith); } else { return this.replace(reallyDo, replaceWith); } }; //格式化字符串 add By 劉景寧 2010-12-09 String.Format = function() { if (arguments.length == 0) { return ''; } if (arguments.length == 1) { return arguments[0]; } var reg = /{(/d+)?}/g; var args = arguments; var result = arguments[0].replace(reg, function($0, $1) { return args[parseInt($1) + 1]; }); return result; }; // 數字補零 Number.prototype.LenWithZero = function(oCount) { var strText = this.toString(); while (strText.length < oCount) { strText = '0' + strText; } return strText; }; // Unicode還原 Number.prototype.ChrW = function() { return String.fromCharCode(this); }; // 數字數組由小到大排序 Array.prototype.Min2Max = function() { var oValue; for (var i = 0; i < this.length; i++) { for (var j = 0; j <= i; j++) { if (this[i] < this[j]) { oValue = this[i]; this[i] = this[j]; this[j] = oValue; } } } return this; }; // 數字數組由大到小排序 Array.prototype.Max2Min = function() { var oValue; for (var i = 0; i < this.length; i++) { for (var j = 0; j <= i; j++) { if (this[i] > this[j]) { oValue = this[i]; this[i] = this[j]; this[j] = oValue; } } } return this; }; // 獲得數字數組中最大項 Array.prototype.GetMax = function() { var oValue = 0; for (var i = 0; i < this.length; i++) { if (this[i] > oValue) { oValue = this[i]; } } return oValue; }; // 獲得數字數組中最小項 Array.prototype.GetMin = function() { var oValue = 0; for (var i = 0; i < this.length; i++) { if (this[i] < oValue) { oValue = this[i]; } } return oValue; }; // 獲取當前時間的中文形式 Date.prototype.GetCNDate = function() { var oDateText = ''; oDateText += this.getFullYear().LenWithZero(4) + new Number(24180).ChrW(); oDateText += this.getMonth().LenWithZero(2) + new Number(26376).ChrW(); oDateText += this.getDate().LenWithZero(2) + new Number(26085).ChrW(); oDateText += this.getHours().LenWithZero(2) + new Number(26102).ChrW(); oDateText += this.getMinutes().LenWithZero(2) + new Number(20998).ChrW(); oDateText += this.getSeconds().LenWithZero(2) + new Number(31186).ChrW(); 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(); return oDateText; }; //擴展Date格式化 Date.prototype.Format = function(format) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小時 "H+": this.getHours(), //小時 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; var week = { "0": "/u65e5", "1": "/u4e00", "2": "/u4e8c", "3": "/u4e09", "4": "/u56db", "5": "/u4e94", "6": "/u516d" }; if (/(y+)/.test(format)) { format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); } if (/(E+)/.test(format)) { format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f" : "/u5468") : "") + week[this.getDay() + ""]); } 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; } Date.prototype.Diff = function(interval, objDate) { //若參數不足或 objDate 不是日期類型亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb 国产视频观看一区| 亚洲最大中文字幕| 91视频8mav| 欧美极品美女电影一区| 国产精品91久久| 97avcom| 欧美中文字幕精品| 麻豆国产va免费精品高清在线| 欧美另类极品videosbestfree| 草民午夜欧美限制a级福利片| 国产亚洲人成网站在线观看| 91性高湖久久久久久久久_久久99| 俺去啦;欧美日韩| 欧美一区亚洲一区| 亚洲自拍偷拍第一页| 国产一区二区三区在线| 国产综合久久久久| 黄色成人av网| 最近2019年手机中文字幕| 一区二区在线免费视频| 高清一区二区三区日本久| 欧美裸体xxxx极品少妇| 亚洲精品小视频| 久久夜精品va视频免费观看| 久久午夜a级毛片| 国产精国产精品| 亚洲综合在线小说| 日韩av不卡电影| 日韩在线观看免费高清完整版| 国产一区二区三区在线免费观看| 亚洲美女黄色片| 夜夜躁日日躁狠狠久久88av| 日韩精品免费综合视频在线播放| 91精品在线观| 深夜成人在线观看| 国产aⅴ夜夜欢一区二区三区| 亚洲成人久久网| 精品国产美女在线| 九九热99久久久国产盗摄| 国产精品一区二区三区成人| 欧美大片在线看免费观看| 91成人精品网站| 国产91免费看片| 久久国产精品久久久久久久久久| 欧美午夜www高清视频| 欧美午夜视频在线观看| 亚洲精品日韩欧美| 国产欧美一区二区三区在线看| 亚洲精品二三区| 国产精品亚洲网站| 欧美一区二区三区四区在线| 欧美在线精品免播放器视频| 亚洲精品久久久久久下一站| 亚洲欧美在线磁力| 欧美体内谢she精2性欧美| 中文字幕精品一区久久久久| 精品久久久精品| 欧美猛交ⅹxxx乱大交视频| 欧美极品美女视频网站在线观看免费| 97精品国产91久久久久久| 国产精品精品一区二区三区午夜版| 日韩av日韩在线观看| 欧美成人免费在线观看| 色一情一乱一区二区| 久久亚洲国产精品成人av秋霞| 深夜精品寂寞黄网站在线观看| 91精品免费视频| 国产91精品久| 日韩一区二区三区国产| 国产女人精品视频| 欧美高清性猛交| 国产精品日韩电影| 国产亚洲精品久久久久久| 在线亚洲男人天堂| 亚洲一区二区三区成人在线视频精品| 992tv成人免费影院| 亚洲精品av在线| 国产在线精品自拍| 国产精品老女人精品视频| 日本91av在线播放| 久久九九亚洲综合| 国产精品高清免费在线观看| 欧美国产亚洲精品久久久8v| 欧美成人全部免费| 日韩欧美一区二区三区久久| 51久久精品夜色国产麻豆| 成人欧美一区二区三区黑人孕妇| 成人黄色免费片| 88国产精品欧美一区二区三区| 欧美大片免费看| 青青精品视频播放| 亚洲一区二区三区xxx视频| 精品久久久久久亚洲精品| 亚洲自拍偷拍色片视频| 亚洲国产91色在线| 日本一区二区在线播放| 亚洲第一视频网| xxx一区二区| 中文字幕无线精品亚洲乱码一区| 国产精品丝袜一区二区三区| xvideos成人免费中文版| 一区二区日韩精品| 欧美日韩亚洲高清| 国产精品福利无圣光在线一区| 777午夜精品福利在线观看| 欧美中文字幕视频在线观看| 亚洲成人动漫在线播放| 中文字幕精品久久久久| 欧美大片在线看| 欧美精品激情视频| 国产日韩欧美在线播放| 日韩激情片免费| 91天堂在线观看| 国产一区二区动漫| 亚洲free嫩bbb| 国产玖玖精品视频| 69久久夜色精品国产69| 九九热这里只有精品免费看| 亚洲人成绝费网站色www| 欧美性猛交xxxx富婆弯腰| 精品成人在线视频| 日韩av在线看| 日本一区二区在线播放| 国内精品久久久久久久久| 日韩免费在线播放| 亚洲视频免费一区| 国自产精品手机在线观看视频| 日韩成人av网址| 成人欧美一区二区三区在线| 日韩亚洲欧美成人| 国模精品一区二区三区色天香| 视频在线观看一区二区| 91精品国产成人| 国产成人avxxxxx在线看| xxxxxxxxx欧美| 欧美人在线视频| 欧美又大又粗又长| 欧美另类xxx| 一区二区三区动漫| 久久久久久久久久久免费| 青草热久免费精品视频| 欧美精品制服第一页| 国产福利精品av综合导导航| 中文字幕在线视频日韩| 亚洲影院色无极综合| 国产精品无av码在线观看| 国产mv免费观看入口亚洲| 精品中文字幕在线观看| 亚洲精品国精品久久99热一| 26uuu国产精品视频| 色综合色综合久久综合频道88| 亚洲精品欧美一区二区三区| 97高清免费视频| 欧美精品手机在线| 高跟丝袜欧美一区| 欧美日韩国产精品| 日韩av成人在线观看| 欧美极品少妇xxxxx| 精品福利在线视频| 亚洲永久免费观看| 亚洲欧美一区二区激情| 91精品啪在线观看麻豆免费| 久久国产精彩视频| 91社影院在线观看|