[原文]http://blog.csdn.net/cyanapple_wen/article/details/5420949
個人認為最好的方法.採用的是Regex,這是最核心的原理.
其次.這個方法使用了JavaScript 的prototype 屬性
其實你不使用這個屬性一樣可以用函數實現.但這樣做後用起來比較方便.
下面就來看看這個屬性是怎麼來用的.
返回物件類型原型的引用。
objectName.prototype
objectName 參數是對象的名稱。
說明
用 prototype 屬性提供對象的類的一組準系統。對象的新執行個體“繼承”賦予該對象原型的操作。
例如,要為 Array 對象添加返回數組中最大元素值的方法。要完成這一點,聲明該函數,將它加入 Array.prototype,並使用它。
[javascript] view plaincopyprint?
- function array_max( )
- {
- var i, max = this[0];
- for (i = 1; i < this.length; i++)
- {
- if (max < this[i])
- max = this[i];
- }
- return max;
- }
- Array.prototype.max = array_max;
- var x = new Array(1, 2, 3, 4, 5, 6);
- var y = x.max( );
function array_max( )<br />{<br />var i, max = this[0];<br />for (i = 1; i < this.length; i++)<br />{<br />if (max < this[i])<br />max = this[i];<br />}<br />return max;<br />}<br />Array.prototype.max = array_max;<br />var x = new Array(1, 2, 3, 4, 5, 6);<br />var y = x.max( );
該代碼執行後,y 儲存數組 x 中的最大值,或說 6。
所有 JScript 內部對象都有唯讀 prototype 屬性。可以象該例中那樣為原型添加功能,但該對象不能被賦予不同的原型。然而,使用者定義物件可以被賦給新的原型。
本語言參考中每個內部對象的方法和屬性列表指出哪些是對象原型的部分,哪些不是.
下面是代碼原文
程式碼
[javascript] view plaincopyprint?
- <SCRIPT LANGUAGE="JavaScript">
- //去兩邊空格
- String.prototype.Trim = function()
- {
- return this.replace(/(^\s*)|(\s*$)/g, "");
- }
- //去左空格
- String.prototype.LTrim = function()
- {
- return this.replace(/(^\s*)/g, "");
- }
- //去右空格
- String.prototype.RTrim = function()
- {
- return this.replace(/(\s*$)/g, "");
- }
- </SCRIPT>
<SCRIPT LANGUAGE="JavaScript"><br />//去兩邊空格<br />String.prototype.Trim = function()<br />{<br />return this.replace(/(^/s*)|(/s*$)/g, "");<br />}<br />//去左空格<br />String.prototype.LTrim = function()<br />{<br />return this.replace(/(^/s*)/g, "");<br />}<br />//去右空格<br />String.prototype.RTrim = function()<br />{<br />return this.replace(/(/s*$)/g, "");<br />}<br /></SCRIPT>下面來我們來看看Javascript指令碼中"\s表示什麼"
\s 匹配任何空白字元,包括空格、定位字元、換頁符等等。等價於 [ \f\n\r\t\v]。請緊記是小寫s\S匹配任何非空白字元。等價於 [^ \f\n\r\t\v]。global 屬性
返回 Boolean 值,指出Regex使用的global 標誌 (g) 的狀態。預設值為 false。唯讀。