JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现。这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣。
下面给出一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <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扩展:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 // 清除两边的空格 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-u9fa5uf900-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-u9fa5uf900-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) {