Prototype 加強了 JavaScript 內建的 String 物件的能力,雖然這做法並不是 jQuery 的理念,不過畢竟有些方法是很方便使用的,因此就有網友把它也整合成 jQuery 的 dotString 套件了。
dotString 實作了 Prototype 1.6.0.2 中的大部份 String 的函式,讓我們可以快速的轉換原先在 Prototype 中的各種方法來用在 jQuery 中。
套件名稱:dotString
套件版本:1.0
作者網站:http://www.stilldesigning.com/dotstring/
套件網址:http://plugins.jquery.com/project/dotString
發佈日期:2008-05-12
檔案大小:15.3 KB
檔案下載:jquery.string.1.0.js
參數說明:
檢視原始碼 JavaScript
1 2 3 | parameter(選填) 描述: 要處理的字串 預設值: 無 |
方法說明:
檢視原始碼 JavaScript
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 | // 判斷字串 s 是否為空白或空字串(" " 或 "") $.string(s).blank(); // 轉換字串 s 中的 -(dash) 為 camelCase 的方式來處理 $.string(s).camelize(); // 轉換字串 s 中第一個字元大為大寫,其餘為小寫 $.string(s).capitalize(); // 用 -(dash) 來替換字串 s 中全部的 _(Underscore), $.string(s).dasherize(); // 判斷字串 s 是否為空字串("") $.string(s).empty(); // 判斷字串 s 的結尾是否為 pattern $.string(s).endsWith(pattern); // 轉換字串 s 中的 HTML 特殊字元(&, <, >) $.string(s).escapeHTML(); // 轉換字串 s 為 JSON 格式物件(若不為合法的 JSON 格式會丟出 SyntaxError 錯誤),當 sanitize 為 true 時會檢查字串 s 是否包函惡意的語法 $.string(s).evalJSON([sanitize = false]); // 執行字串 s 中的 JavaScript 語法,並把結果儲存在陣列中回傳 $.string(s).evalScripts(); // 取出字串 s 中的 JavaScript 語法的部份,並儲存在陣列中回傳 $.string(s).extractScripts(); // 用 replacement 取代字串 s 中包含 pattern 的部份 $.string(s).gsub(pattern, replacement); // 判斷字串 s 中是否包含 pattern $.string(s).include(pattern); // 回傳 debug-oriented 的字串 s,若 useDoubleQuotes 為 true 則字串 s 會用雙引號包起來:預設是用單引號 $.string(s).inspect(useDoubleQuotes = false); // 用 obj 物件的屬性值來替換字串 s 中相對應的 #{變數樣式} 值 $.string(s).interpolate(obj[, pattern]); // 判斷字串 s 中是否為合格的 JSON 格式字串 $.string(s).isJSON(); // 用 replacement 來一一執行字串 s 中符合 pattern 的部份 $.string(s).scan(pattern, replacement); // 判斷字串 s 的開頭是否為 pattern $.string(s).startsWith(pattern); // 移除掉字串 s 中的前後空白字元 $.string(s).strip(); // 過慮字串 s 中類似 JavaScript 的部份 $.string(s).stripScripts(); // 過慮字串 s 中類似標籤的部份(<xxx>) $.string(s).stripTags(); // 用法類似 gsub,可依 count 來設定取代的數量 $.string(s).sub(pattern, replacement[, count = 1]); // 把字串 s 中最後的一個字元的 CharCode 加 1 回傳(a=>b,b=>c...) $.string(s).succ(); // 把字串 s 連結 count 次 $.string(s).times(count); // 轉換字串 s 為 JSON 字串 $.string(s).toJSON(); // 用指定的 separator 來轉換 URI-like 的字串 s 為一個 parameter/value 的物件 $.string(s).toQueryParams([separator = '&']); // 把字串 s 超過 length 的部份截斷,並用 truncation 來表示(truncation 的長度也包含在 length) $.string(s).truncate([length = 30[, truncation = '...']]); // 轉換 camelCase 型式的字串 s 中的每個單字用 _(Underscore) 來區分 $.string(s).underscore(); // 把字串 s 中有 HTML 特殊字元的值轉回(&, <, >) $.string(s).unescapeHTML(); // 轉換字串 s 為合法的 JSON 物件 $.string(s).unfilterJSON([filter = __stringPrototype.JSONFilter]); |
使用範例:
檢視原始碼 JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.string.1.0.js"></script> <script type="text/javascript"> $(function(){ // 轉換 "<p>this is a test</p>" 中的 HTML 的特殊字元 alert("blank=" + $.string("<p>this is a test</p>").escapeHTML().str); // 移除 "<p>this is a test</p>" 中的 HTML 標籤 $(".result").html("stripTags=" + $.string("<p>this is a test</p>").stripTags().str + "<br />"); }); </script> <body> <div class="result"></div> </body> |
附註:
為了維持 jQuery 的開發理念,因此使用的函式後,除了 blank() 會回傳 Boolean 及 evalJSON() 會回傳 JSON 物件之外,其餘的都是會回傳 string。$.string 會回傳另一個 $.string 物件,要取得值時要使用 str 屬性。