ชุดวิธีอาร์เรย์
angela.array = {//# method array // index, return position! หากไม่มีอยู่มันจะกลับมา -1; ดัชนี: ฟังก์ชัน (t, arr) {//# ส่งคืนตำแหน่งของอาร์เรย์ที่ค่าปัจจุบันอยู่ในตำแหน่งถ้า (arr.indexof) {return arr.indexof (t); } สำหรับ (var i = arr.length; i--;) {ถ้า (arr [i] === t) {return i * 1; - กลับ -1; } // ส่งคืนค่าคีย์ของวัตถุ! ประเภทค่าส่งคืนเป็นอาร์เรย์ , getKey: function (data) {//# ส่งคืนค่าคีย์ทั้งหมดของวัตถุ var arr = [], k; สำหรับ (k ในข้อมูล) {arr.push (k); - กลับ arr; } // สุ่มแยกค่าจากอาร์เรย์สุ่ม: ฟังก์ชัน (อาร์เรย์) {//# สุ่มแยกค่าจากอาร์เรย์อาร์เรย์ = อาร์เรย์ || - var len = arrays.length, index = tydic.math.randint (0, len - 1); อาร์เรย์ส่งคืน [ดัชนี] || - } // การซ้ำซ้อนอาร์เรย์หนึ่งมิติ, ไม่ซ้ำกัน: ฟังก์ชั่น (อาร์เรย์) {//## one-dimensional array deduplication array = array || - สำหรับ (var i = 0, len = array.length; i <len; i ++) {สำหรับ (var j = i+1; j <array.length; j ++) {ถ้า (อาร์เรย์ [i] === อาร์เรย์ [j]) {array.splelice (j, 1); J--; }}} return array; } // สูงสุดคำที่ใหญ่ที่สุดในอาร์เรย์, สูงสุด: ฟังก์ชั่น (อาร์เรย์) {//#ค้นหาคำที่ใหญ่ที่สุดในอาร์เรย์ return math.max.apply (null, array); } // min คำที่เล็กที่สุดในอาร์เรย์, ขั้นต่ำ: ฟังก์ชั่น (อาร์เรย์) {//#ค้นหารายการที่เล็กที่สุดในอาร์เรย์ return math.min.apply (null, array); } // ลบ, ลบ, ลบ: ฟังก์ชัน (อาร์เรย์, ค่า) {//#ลบค่าในความยาวอาร์เรย์ var = array.length; ในขณะที่ (ความยาว-) {ถ้า (value === อาร์เรย์ [ความยาว]) {array.splice (ความยาว, 1); }} return array; } // ล้างอาร์เรย์ว่างเปล่า: ฟังก์ชั่น (อาร์เรย์) {//# ล้างอาร์เรย์ (อาร์เรย์ || []). ความยาว = 0; อาร์เรย์กลับ; } // ลบลบลบค่าของตำแหน่งที่ระบุ //@ดัชนีดัชนี หากดัชนีไม่ผ่านการลบครั้งแรกจะถูกลบ, ลบ: ฟังก์ชัน (อาร์เรย์, ดัชนี) {//#ลบค่าของตำแหน่งที่ระบุในอาร์เรย์อาร์เรย์ (ดัชนี, 1); อาร์เรย์กลับ; } // scrap การเรียงลำดับอาร์เรย์, shuffle: function (arr) {//#scrap array sort array array = (arr || []). concat (), ความยาว = array.length, i = ความยาว // travel, tmp = null // ชั่วคราว, rand = tydic.math.randint // ในขณะที่ (i--) {pos = rand (0, ความยาว); // เปลี่ยนตำแหน่งสุ่ม tmp = อาร์เรย์ [pos]; อาร์เรย์ [pos] = อาร์เรย์ [i]; อาร์เรย์ [i] = tmp; } return array; -ชุดวิธีคุกกี้
angela.cookie = {//# คุกกี้ // เบราว์เซอร์รองรับคุกกี้เพียงพอ เปิดใช้งาน: !! navigator.cookieenabled // อ่านคุกกี้, รับ: ฟังก์ชั่น (ชื่อ) {//#อ่านคุกกี้ var reg = ใหม่ regexp ("(^|)" + ชื่อ + "(?: = ([^;]*)? (; | $)"), val = document.cookie.match (reg); กลับมาวาล? (val [2]? unescape (val [2]): ""): ''; } // เขียนคุกกี้, ชุด: ฟังก์ชั่น (ชื่อ, ค่า, หมดอายุ, พา ธ , โดเมน, ปลอดภัย) {//# เขียนคุกกี้ var exp = วันที่ใหม่ (), expires = อาร์กิวเมนต์ [2] || null, path = อาร์กิวเมนต์ [3] || "/", domain = อาร์กิวเมนต์ [4] || null, secure = อาร์กิวเมนต์ [5] || เท็จ ; หมดอายุ? exp.setMinutes (exp.getMinutes () + parseInt (หมดอายุ)): ""; document.cookie = name + '=' + escape (value) + (หมดอายุหรือไม่ '; expires =' + exp.togmtstring (): '') + (path? '; path =' + path: ') + (โดเมน?'; domain = ' + โดเมน:' ') + (ปลอดภัย'; } // ลบคุกกี้, del: function (ชื่อ, เส้นทาง, โดเมน, ปลอดภัย) {//#ลบคุกกี้ var ค่า = $ getCookie (ชื่อ); if (value! = null) {var exp = วันที่ใหม่ (); exp.setMinutes (exp.getMinutes () - 1,000); PATH = PATH || - document.cookie = name + '=; expires =' + exp.togmtstring () + (path? '; path =' + path: '') + (โดเมน? '; domain =' + โดเมน: '') + (ปลอดภัย? '; ปลอดภัย': ''); -ชุดวิธี URL
angela.url = {//#url // บทความ: ชื่อตัวแปรหาก URL ว่างเปล่าตารางจะรับ getQuery จาก URL ของหน้าปัจจุบัน: ฟังก์ชั่น (ชื่อ, url) {var u = อาร์กิวเมนต์ [1] || window.location.search, reg = ใหม่ regexp ("(^| &)" + ชื่อ + "= ([^&]*) (& | $)"), r = u.substr (u.indexof ("?") + 1) .match (reg); กลับ r! = null? r [2]: ""; }, gethash: function (ชื่อ, url) {//# รับ hash val var u = อาร์กิวเมนต์ [1] || location.hash; var reg = ใหม่ regexp ("(^| &)" + ชื่อ + "= ([^&]*) (& | $)"); var r = u.substr (u.indexof ("#") + 1). -match (reg); if (r! = null) {return r [2]; } กลับ ""; }, parse: ฟังก์ชั่น (url) {//# parse url var a = document.createElement ('a'); url = url || document.location.href; A.href = url; return {แหล่งที่มา: url, โปรโตคอล: a.protocol.replace (':', ''), โฮสต์: a.hostname, พอร์ต: a.port, คำถาม: A.Search, ไฟล์: (a.pathname.match (/([^//?#]+) $/i) A.PathName.replace (/^([^//])/, '/$ 1'), ญาติ: (A.Href.Match (/tps?: ///// [^//]+(.+)/) || [, '']) [1], กลุ่ม: A.PathName.replace -ชุดวิธีการแสดงออกปกติ
angela.regexp = {//# การจับคู่สตริง // ไม่ว่าจะเป็นตัวเลข! จำนวนเต็ม, หมายเลขจุดลอยตัว isnum: ฟังก์ชัน (num) {//# มันเป็นอาร์เรย์คืน! isnan (num); }, isemail: function (mail) {//# มันเป็นกล่องจดหมายส่งคืน /^( [outha-z0-9like+ bly_/-//.lame?)* [outha-z0-9like+@( [[adya-z0-9li ต่อไป }, iSidCard: ฟังก์ชั่น (การ์ด) {//# มันเป็นบัตรประจำตัวที่ส่งคืนบัตรประจำตัว /^(/d {14}|/d {17}))(/d thenfyxx like)$/.test(card); }, isMobile: ฟังก์ชั่น (มือถือ) {//# มันคือการส่งคืนโทรศัพท์ /^0*1/d {10}$/.test(Mobile); }, isqq: function (qq) {//# มันเป็น jq return /^ [1-9-9- เหมือน/dd {4,10 }$/.test(qq); }, iStel: ฟังก์ชั่น (โทรศัพท์) {//# มันคือการส่งคืนโทรศัพท์ /^/d {3,4}-/d {7,8}(-/d {1,6s }, isurl: function (url) {//# เป็น url return /https?:////lya-z0-9/./-hint {1,255}/. [atrod0-9a-z/-- เหมือนกัน {1,255}/i.test(url); }, ISCOLOR: ฟังก์ชั่น (สี) {//# ไม่ว่าจะเป็น hexadecimal color return /#( [ada-fhint {3}) {1,2}$/i.test(Color); } // @id: บัตรประจำตัว, // @Now: เวลาปัจจุบันเช่น: วันที่ใหม่ ('2013/12/12'), '2013/12/12' // @age: อายุที่อนุญาต, isadult: ฟังก์ชั่น (id, ค่าอนุญาตตอนนี้) {//# อายุ อนุญาต = parsefloat (อนุญาต) || 18; ตอนนี้ = typeof now == 'สตริง'? วันที่ใหม่ (ตอนนี้): (ตอนนี้ || วันที่ใหม่ ()); if (! this.isidcard (id)) {return false; } // บัตรประชาชน 15 บิตถ้า (15 == id.length) {age = '19' + id.slice (6, 6); } else {age = id.slice (6, 14); } // ประเภทการแปลงจำนวนเต็มอายุ = ~~ อายุ; nowdate = ~~ (tydic.date.format ('yyyymmdd', ตอนนี้); // เปรียบเทียบอายุถ้า (nowdate - อายุ <อนุญาต * 1e4) {return false; } return true; } // float, isfloat: function (num) {//# มันเป็นจุดลอยตัวคืน /^( อเมริกา-9-like/d*)|(/d+/./d+)|0)$/.test(num); } // จำนวนเต็มบวก, iSint: function (num) {//# ไม่ว่าจะเป็นการส่งคืนจำนวนเต็มบวก /^ [1-9-9 เหมือน/DEG /.TEST(NUM); } // เป็นตัวละครจีนทั้งหมด ischinese: ฟังก์ชั่น (str) {//# มันเป็นตัวละครจีนทั้งหมดกลับมา /^( [u4e00-/u9fa5 เหมือน -ชุดวิธีสตริง
angela.string = {//# string codehtml: function (เนื้อหา) {//# escape ตัวอักษร html ส่งคืนสิ่งนี้ retlace (เนื้อหา, {'&': "&", '"':" "," '': '', '<': '': ':': ':': ':': ' "*", '+': "+", ',': ",", '-': "-", '.': ".", ',', ',', ': "/",'? } // ซ้ำสตริง, ทำซ้ำ: ฟังก์ชั่น (คำ, ความยาว, end) {//# ซ้ำสตริง end = end || - // เพิ่มความยาวสุดท้าย = ~~ ความยาว; ส่งคืนอาร์เรย์ใหม่ (ความยาว * 1 + 1) .Join (Word) + '' + end; } // เพิ่มคำนำหน้า, addpre: function (pre, word, ขนาด) {//# make up ถ้าคุณนำหน้า 0 pre = pre || '0'; size = parseint (ขนาด) || 0; Word = String (Word || ''); var length = math.max (0, size - word.length); ส่งคืนสิ่งนี้ซ้ำ (ก่อนความยาวคำ); } // ลบช่องว่างทั้งสองด้านตัดแต่ง: ฟังก์ชั่น (ข้อความ) {//# ลบช่องว่างทั้งสองด้านส่งคืน (ข้อความ || ''). แทนที่ (/^/s+|/s $/, ''); } // การเปลี่ยนสตริง, แทนที่: ฟังก์ชั่น (str, re) {//# string replacement str = str || - สำหรับ (คีย์ var ใน RE) {แทนที่ (คีย์, RE [คีย์]); - ฟังก์ชั่นแทนที่ (a, b) {var arr = str.split (a); str = arr.oin (b); - return str; }, XSS: ฟังก์ชัน (str, type) {//# xss escape // ตัวกรองว่างถ้า (! str) {return str === 0? "0": ""; } สวิตช์ (ประเภท) {case "html": // ตัวกรอง XSS ในสตริง HTML return str.replace (/[& '"<> //////-/x00-/x09/x0b-/x0c/x1f/x80-/xff]/g "). แทนที่ (// r/n/g," <br />").replace(/n/g, "<br />") str.replace (/[& '"<> //////-/x00-/x1f/x80-/xff]/g, ฟังก์ชั่น (r) {return" &#" + r.charcodeat (0) +"; "}); หยุดพัก; กรณี "url": // กรอง URL return escape (str). แทนที่ (//+/g, "%2b"); หยุดพัก; กรณี "miniurl": return str.replace (/%/g, "%25"); หยุดพัก; กรณี "สคริปต์": return str.replace (/[// "']/g, function (r) {return" // " + r;}) แทนที่ (/%/g," //x25") str.replace (/[//^/$/*/*/+/?/ {/}/./(/)/ [เหมือนกันเหมือนกัน/g, ฟังก์ชั่น (a) {return "//" + a;}) (r) {return "&#" + r.charcodeat (0) + ";" "<br />" />").replace(//r/g, "<br />"); break;}} // badword, กรองคำที่อ่อนไหว //@text: ข้อความที่จะกรอง, พิมพ์: สตริง //@คำพูดที่ละเอียด วินาที, badword: function (text, words) {//# ข้อความที่ละเอียด var reg = ใหม่ regexp (words.oin ('|'), 'g'), _self = this; return text.replace (reg, function ($ 0) {var length = string ($ 0 || '') .length; return _self.repeat ('*', ความยาว);}); -ชุดวิธีการเข้ารหัส
angela.encrypt = {//# encryption md5: ฟังก์ชั่น (คำ) {//# md5 อัลกอริทึมแฮช/ * * crypto-js 3.1.2 * http://code.google.com/p/crypto-js */var cryptojs = ฟังก์ชัน {}, r = l.base = {ขยาย: ฟังก์ชัน (b) {n.prototype = this; var h = new n; b && h.mixin (b); H.HasownProperty ("init") || (h.init = function () {h. $ super.init.apply (สิ่งนี้, อาร์กิวเมนต์)}); H.Init.prototype = H; h. $ super = this; return h}, สร้าง: function () {var b = this.extend (); b.init.apply (b, ข้อโต้แย้ง); return b}, init: function () {}, mixin: function (b) {สำหรับ (var h ใน b) b.hasownproperty (h) && (นี้ [h] = b [h]); B.HasOwnProperty ("toString") && (this.toString = b.toString)}, โคลน: ฟังก์ชั่น () {return this.init.prototype.extend (นี่)}}, q = l.wordarray = r.extend : 4 * B.Length}, ToString: ฟังก์ชั่น (b) {return (b || t) .stringify (นี่)}, concat: ฟังก์ชั่น (b) {var h = this.words, a = b.words, j = this.sigbytes; | = A [G >>> 2] >>> 24 - 8 * (G % 4) & 255) << 24 - 8 * (j + g) % 4); }, clamp: function () {var b = this.words, h = this.sigbytes; สุ่ม: ฟังก์ชั่น (b) {สำหรับ (var h = [], a = 0; a <b; a += 4) h.push (4294967296 * s.random () | 0); ส่งคืน q.init ใหม่ (h, b)}}), v = m.enc = {}, t = v.hex = {stringify: function (b) {var a = b.words; B = B.Sigbytes; สำหรับ (var g = [], j = 0; j <b; j ++) {var k = a [j >>> 2] >>> 24 - 8 * (J % 4) & 255; g.push ((k >>> 4) .tostring (16)); G.Push ((K & 15) .ToString (16))} ส่งคืน g.join ("")}, แยกวิเคราะห์: ฟังก์ชั่น (b) {สำหรับ (var a = b.length, g = [], j = 0; j <a; j += 2) g [j >> 3] ส่งคืน q.init ใหม่ (g, a / 2)}}, a = v.latin1 = {stringify: function (b) {var a = b.words; B = B.Sigbytes; สำหรับ (var g = [], j = 0; j <b; j ++) g.push (string.fromCharcode (a [j >>> 2] >>> 24 - 8 * (J % 4) & 255)); return g.join ("")}, parse: ฟังก์ชั่น (b) {สำหรับ (var a = b.length, g = [], j = 0; j <a; j ++) g [j >>> 2] | = (b.charcodeat (j) & 255) << 24 - 8 * (J % 4); ส่งคืน q.init ใหม่ (g, a)}}, u = v.utf8 = {stringify: function (b) {ลอง {return decodeuricomponent (escape (a.stringify (b)))} catch (g) {โยนข้อผิดพลาด ("malformed utf-8 data"); }}, แยกวิเคราะห์: ฟังก์ชั่น (b) {return a.parse (unescape (encodeuricomponent (b)))}, g = l.bufferedblockalgorithm = r.extend ({reset: rement () {this._data = ใหม่ q.init; (B = U.Parse (B)); S.Max (M | 0) - นี่คือ _MinBuffersize, 0); โคลน: ฟังก์ชั่น () {var b = r.clone.call (นี่); l.hasher = g.extend ({cfg: r.extend (), init: ฟังก์ชั่น (b) {this.cfg = this.cfg.extend (b); this.reset ()}, รีเซ็ต: ฟังก์ชัน () {g.reset.call (นี่); this._doreset () this._process (); g) {return (ใหม่ k.hmac.init (b, g)). สรุป (a)}}}); var k = m.algo = {}; return m} (คณิตศาสตร์); (ฟังก์ชั่น (s) {ฟังก์ชั่น p (a, k, b, h, l, l, j, m) {a = a + (k & b | ~ k & h) + l + m; return (a << j | a >>> 32 - j) + k} ฟังก์ชั่น m (a, k, b, h, l, j, m) j) + k} ฟังก์ชั่น l (a, k, b, h, l, j, m) {a = a + (b ^ (k | ~ h)) + l + m; + k} ฟังก์ชั่น n (a, k, b, h, l, j, m) {a = a + (b ^ (k | ~ h)) + l + m; } สำหรับ (var r = cryptojs, q = r.lib, v = q.wordarray, t = q.hasher, q = r.algo, a = [], u = 0; 64> u; this._hash = ใหม่ v.init ([1732584193, 4023233417, 2562383102, 271733878])}, _doprocessblock: ฟังก์ชั่น (g, k) {สำหรับ (var b = 0; 16> b; b ++) g [h] = (w << 8 | w >>> 24) & 16711935 | (W << 24 | W >>> 8) & 42782555360} var b = this._hash.words, h = g [k + 0], w = g [k + 1], j = g [k + 2], q = g [k + 3], r = g [k + 4] x = g [k + 9], y = g [k + 10], z = g [k + 11], a = g [k + 12], b = g [k + 13], c = g [k + 14], d = g [k + 15], c = b [0], d = b [1], e = b [2] p (f, c, d, e, w, 12, a [1]), e = p (e, f, c, d, j, 17, a [2]), d = p (d, e, f, c, q, 22, a [3]), c = p (c, d, e, f, e, e, e, e, d, t, 17, a [6]), d = p (d, e, f, c, u, 22, a [7]), c = p (c, d, e, f, v, 7, a [8]), f = p (f, c, d, e, x, 12, a [9]) a [11]), c = p (c, d, e, f, a, 7, a [12]), f = p (f, c, d, e, b, 12, a [13]), e = p (e, f, c, d, c, 17, a [14]) m (f, c, d, e, t, 9, a [17]), e = m (e, f, c, d, d, z, 14, a [18]), d = m (d, e, f, c, h, 20, a [19]), c = m (c, d, e, f, 9, C, D, E, Y, 9, A [21]), E = M (E, F, C, C, C, H, 20, A [19]), C = M (C, D, E, F, S, 5, A [20]), F = M (F, C, D, E, 9, A [21]) a [23]), c = m (c, d, e, f, x, 5, a [24]), f = m (f, c, d, e, c, 9, a [25]), e = m (e, f, c, d, q, 14, a [26]) m (f, c, d, e, j, 9, a [29]), e = m (e, f, c, d, u, 14, a [30]), d = m (d, e, f, c, a, 20, a [27]), c = m (c, d, e, f, c c, d, e, v, 11, a [33]), e = l (e, f, c, d, d, z, 16, a [34]), d = l (d, e, f, c, d, z, 16, a [34]), d = l (d, e, c, c, c, 23, c, d, e, r, 11, a [37]), e = l (e, f, c, d, u, 16, a [38]), d = l (d, e, f, c, y, 23, a [39]), c = l (c, d, e, f, 4, a [40] a [42]), d = l (d, e, f, c, t, 23, a [43]), c = l (c, d, e, f, x, 4, a [44]), f = l (f, c, d, e, a, 11, a [45]) a [47]), c = n (c, d, e, f, h, 6, a [48]), f = n (f, c, d, e, u, 10, a [49]), e = n (e, f, c, d, e, u, 10, a [49]) = n (c, d, e, f, a, 6, a [52]), f = n (f, c, d, e, q, 10, a [53]), e = n (e, f, c, d, y, 15, a [54]), d = n (d, e, f, c, c, 21, n (f, c, d, e, d, 10, a [57]), e = n (e, f, c, d, t, 15, a [58]), d = n (d, e, f, c, b, 21, a [59]), c = n (c, d, e, e, e, e, e, e, f, c, d, j, 15, a [62]), d = n (d, e, f, c, x, 21, a [63]); B [0] = B [0] + C | 0; B [1] = B [1] + D | 0; B [2] = B [2] + E | 0; B [3] = B [3] + F | 0}, _dofinalize: function () {var a = this._data, k = a.words, b = 8 * 16711935 | (l << 24 | l >>> 8) & 4278255360; K [(H + 64 >>> 9 << 4) + 14] = (B << 8 | B >>> 24) & 16711935 | (B << 24 | L >>> 8) & 4278255360; K [(H + 64 >>> 9 << 4) + 14] = (B << 8 | B >>> 24) & 16711935 | (B << 24 | B >>> 9 << 4) + 14] = (B << 8 | B >>> 24) & 16711935 | (B << 24 | B >>> 8) & 4278255360; A.Sigbytes = 4 * (K.Length + 1); this._process (); a = this._hash; k = A.words; สำหรับ (b = 0; 4> b; b ++) h = k [b], k [b] = (h << 8 | h >>> 24) & 16711935 | (H << 24 | H >>> 8) & 4278255360; return a}, clone: function () {var a = t.clone.call (นี่); A._hash = this._hash.clone (); return a}}); r.md5 = t._createHelper (q); r.hmacmd5 = t._createhmachelper (q)}) (คณิตศาสตร์); ส่งคืน cryptojs.md5 (คำ) .tostring (); } // sha1, sha1: ฟังก์ชั่น (คำ) {//# sha1 อัลกอริทึมการแฮช hashing var cryptojs = ฟังก์ชั่น (e, m) {var p = {}, j = p.lib = {}, l = function () {}, f = j.base = {ขยาย: ฟังก์ชั่น var c = new l; a && c.mixin (a); C.HasownProperty ("init") || (c.init = function () {c. $ super.init.apply (สิ่งนี้, อาร์กิวเมนต์)}); c.init.prototype = c; c. $ super = this; return c}, สร้าง: function () {var a = this.extend (); a.init.apply (a, ข้อโต้แย้ง); return a}, init: function () {}, mixin: function (a) {สำหรับ (var c ใน a) a.hasownproperty (c) && (นี่ [c] = a [c]); A.HasOwnProperty ("toString") && (this.toString = a.toString)}, โคลน: ฟังก์ชั่น () {ส่งคืนสิ่งนี้. : 4 * A.Length}, ToString: ฟังก์ชั่น (a) {return (a || h) .stringify (นี่)}, concat: ฟังก์ชั่น (a) {var c = this.words, q = a.words, d = this.sigbytes; | = q [b >>> 2] >>> 24 - 8 * (b % 4) & 255) << 24 - 8 * (d + b) % 4); }, clamp: function () {var a = this.words, c = this.sigbytes; }, สุ่ม: ฟังก์ชั่น (a) {สำหรับ (var c = [], b = 0; b <a; b += 4) c.push (4294967296 * e.random () | 0); ส่งคืน n.init ใหม่ (c, a)}}), b = p.enc = {}, h = b.hex = {stringify: function (a) {var c = a.words; A = A.Sigbytes; สำหรับ (var b = [], d = 0; d <a; d ++) {var f = c [d >>> 2] >>> 24 - 8 * (d % 4) & 255; b.push ((f >>> 4) .tostring (16)); b.push ((f & 15) .tostring (16))} return b.join (")}, แยกวิเคราะห์: ฟังก์ชั่น (a) {สำหรับ (var c = a.length, b = [], d = 0; d <c; d += 2) b [d >> 3] ส่งคืน n.init ใหม่ (b, c / 2)}}, g = b.latin1 = {stringify: ฟังก์ชั่น (a) {var c = a.words; A = A.Sigbytes; สำหรับ (var b = [], d = 0; d <a; d ++) b.push (string.fromCharcode (c [d >>> 2] >>> 24 - 8 * (d % 4) & 255)); return b.join ("")}, parse: ฟังก์ชั่น (a) {สำหรับ (var c = a.length, b = [], d = 0; d <c; d ++) b [d >>> 2] | = (A.Charcodeat (d) & 255) << 24 - 8 * (d % 4); ส่งคืน n.init (b, c)}}, r = b.utf8 = {stringify: function (a) {ลอง {return decodeuricomponent (escape (g.stringify (a)))} catch (c) {throw error ("malformed utf-8 data"); }}, แยกวิเคราะห์: ฟังก์ชั่น (a) {return g.parse (Unsescape (encodeuricomponent (a)))}, k = j.bufferedblockalgorithm = f.extend ({reset: function () {this._data = new n.init; && (a = r.parse (a)); this._data.concat (a); E.MAX ((H | 0) - นี่คือ _MinBuffersize, 0); โคลน: ฟังก์ชั่น () {var a = f.clone.call (นี่); j.hasher = k.extend ({cfg: f.extend (), init: ฟังก์ชั่น (a) {this.cfg = this.cfg.extend (a); this.reset ()}, รีเซ็ต: ฟังก์ชัน () {k.reset.call (นี่); this._Process (); f) {return (ใหม่ s.hmac.init (a, f)). สรุป (b)}}}); var s = p.algo = {}; return p} (คณิตศาสตร์); (function () {var e = cryptojs, m = e.lib, p = m.wordarray, j = m.hasher, l = [], m = e.algo.sha1 = j.extend ({_doreset: function () {this._hash = ใหม่ 3285377520])}, _doprocessblock: ฟังก์ชั่น (f, n) {สำหรับ (var b = this._hash.words, h = b [0], g = b [1], e = b [2] C = L [A - 3] ^ L [A - 8] ^ L [A - 14] ^ L [A - 16]; 185975393): 60> A? ] + G | < 24 - H % 32; E [(H + 64 >>> 9 << 4) + 15] = B; F.Sigbytes = 4 * E.Length; this._process (); return this._hash}, clone: function () {var e = j.clone.call (นี่); e._hash = this._hash.clone (); return e}}); E.Sha1 = J._CreateHelper (M); e.hmacsha1 = j._createhmachelper (m)}) (); ส่งคืน cryptojs.sha1 (คำ) .tostring (); } // time33 hash, time33: ฟังก์ชั่น (คำ) {//# time33 hash algorithm words = words || - // hash time33 อัลกอริทึมสำหรับ (var i = 0, len = words.length, hash = 5381; i <len; ++ i) {hash += (แฮช << 5) +words.charat (i) .charcodeat (); - ส่งคืนแฮช & 0x7ffffffff; -ชุดวิธีวันที่
angela.date = {//# เวลาวันที่ //@s: เวลาเริ่มต้น //@e: สิ้นสุดเวลา //@n: เวลาปัจจุบัน, n isinarea: ฟังก์ชั่น (s, e, n) {//# เวลาตัดสินพื้นที่ var start = this.parse (s), end = this.parse (e) ตอนนี้ = parsefloat (n) || วันที่ใหม่ (); start = math.min (เริ่มต้นจบ); end = math.max (start, end); กลับมาตอนนี้> = เริ่ม && ตอนนี้ <= จบ? จริง: เท็จ; } // แปลงอักขระเป็น milliseconds //@วันที่: 2013-03-02 1: 2: 2, parse: ฟังก์ชั่น (วันที่) {//## เวลาส่งคืนเวลาวันที่ Parse (วันที่); //.replace(/-/g, '/')} //@เวลาเวลาเช่นวันที่ใหม่ ('2013/11/10 0:12:12') //@pre, คำนำหน้าของสัปดาห์เช่น: สัปดาห์, สัปดาห์ //@nums เช่น: หนึ่ง, สอง, สาม, สี่, ห้าและหกวัน 'สตริง'? this.parse (เวลา): (เวลา || วันที่ใหม่ ()); pre = pre || 'สัปดาห์'; // สัปดาห์ nums = 'วันที่หนึ่ง, สอง, สาม, สี่, ห้า, ห้า, หก'; ส่งคืน pre + nums [time.getday ()]; } //@formattype: yyyy, yy, mm //@เวลา: วันที่ใหม่ ('2013/11/12') //@สัปดาห์: วัน, สอง, สาม, สี่, ห้า, หก, รูปแบบ: ฟังก์ชั่น (รูปแบบ timepe, เวลา, สัปดาห์) FormatType = FormatType || 'yyy-mm-dd' สัปดาห์ = สัปดาห์ || 'วันที่หนึ่งสอง, สาม, สี่, ห้า, หก'; เวลา = เวลา || วันที่ใหม่ (); //formattyp.com return (formatType || ''). แทนที่ (/yyyy | yyyy/g, time.playear ()). แทนที่ (/yy | yy/g, tydic.string.addpre time.getMonth () + 1, 2)). แทนที่ (/m | m/g, time.getMonth () + 1). แทนที่ (/dd | dd/g, tydic.string.addpre (pre, time.getDate (), 2)). tydic.string.addpre (pre, time.gethours (), 2)). แทนที่ (/h | h/g, time.gethours ()). แทนที่ (/II | II/G, tydic.string.addpre (pre, time.getMinutes (), 2). tydic.string.addpre (pre, time.getSeconds (), 2)). แทนที่ (/s | s/g, time.getSeconds ()). แทนที่ (/w/g, time.getday ()) } // Countdown, Countdown: function (opt) {//# countdown var ตัวเลือก = {ตอนนี้: 0 // เวลาปัจจุบัน, 2013/02/01 18:30:30, สิ้นสุดเวลา: 0 // กำหนดเวลา, 2013/02/01 18:30:30, ช่วงเวลา: 1 // ช่วงเวลาการโทรกลับ } // การโทรกลับหลังจากเสร็จสิ้น}, opts = {}, timer = null; opts = tydic.extend (ตัวเลือก, opt); // เวลาปัจจุบันถ้า (! opts.nowtime) {opts.nowtime = (วันที่ใหม่ ()). getTime (); } else {opts.nowtime = this.parse (opts.nowtime); } // เวลาปัจจุบันถ้า (! opts.endtime) {opts.endtime = (วันที่ใหม่ ()). getTime (); } else {opts.endtime = this.parse (opts.endtime); } timer = setInterval (loop, opts.interval * 1e3); // loop function loop () {var ts = opts.endtime - opts.nowtime // คำนวณมิลลิวินาทีที่เหลือ, dd = parseint (ts/8.64e7) // คำนวณวันที่เหลือ, hh = parseint (ts/3.6e7 % 24) // คำนวณชั่วโมงที่เหลืออยู่ ParseInt (TS/1E3 % 60) // คำนวณวินาทีที่เหลือ; // คำนวณการลดเวลาปัจจุบัน opts.nowtime += opts.interval * 1e3; if (ts <= 0) {clearInterval (ตัวจับเวลา); opts.finaled (); } else {opts.called (dd, hh, mm, ss); -ชุดวิธีการตรวจจับเบราว์เซอร์
angela.browser = {//# เบราว์เซอร์เบราว์เซอร์: {//# เบราว์เซอร์เคอร์เนลหมวดหมู่ weixin: /micromessenger(///der/d/.vet /UCBROWSER(///der/D/.LIKE+)// // UC เบราว์เซอร์, Chrome: /( // เปิดเบราว์เซอร์, sougou: /sogoumobileBrowser(///ly/d/.like+)// // Sogou Mobile Browser, Baidu: /baidubrowser(///der/d/.light+)*/ // Baidu Mobile Browser, 360: /360Browser /safari(// [add/d/.lik++)// // Safari, IE: /msie/s( [ad/d/.like+)* // // ie browser} //@errcall: การเรียกกลับข้อผิดพลาด, addfav: ฟังก์ชั่น (url, title, errcall) {//# } catch (e) {ลอง {window.sidebar.addpanel (ชื่อ, url, ''); } catch (e) {errcall (); }}}}, // เบราว์เซอร์เวอร์ชัน coreInit: function () {//#noadd var i = null, เบราว์เซอร์ = this.browsers, ua = window.navigator.useragent.toLowerCase (), เบราว์เซอร์ = '', pos = 1; สำหรับ (i ในเบราว์เซอร์) {ถ้า (brower = ua.match (เบราว์เซอร์ [i])) {ถ้า (i == 'opera') {pos = 2; } else {pos = 1; } this.version = (brower [pos] || ''). replace (/[/// s]+/, ''); this.core = i; กลับฉัน; }}} // ตรวจจับเวอร์ชัน! รองรับ IE เท่านั้น: เวอร์ชัน 5,6,7,8,9, IE: (function () {//# ตรวจจับ IE เวอร์ชัน! การสนับสนุนเท่านั้น: IE5,6,7,8,8 var v = 3, div = document.createElement ('div') ทั้งหมด = div.getElementsByTagname ('i' ']> <i> </i> <! [endif]->' ทั้งหมด [0]);วิธี JSON
angela.json = {//# json object // string กลายเป็น JSON วัตถุแยกวิเคราะห์: ฟังก์ชั่น (ข้อมูล) {//# string รูปแบบกลายเป็น json object var // json regexp rvalidchars =/^[/] ,: {}/s]*$/, rvalidbraces =/(?: /// (?: ["//// bfnrt] | u [/da-fa-f] {4})/g, rvalidtokens = /"ly"//////nifhing* โท if (window.json && window.json.parse) {return window.json.parse (ข้อมูล); } if (data === null) {return data; } if (typeof data === "string") {data = data.replace (/^/s+|/s+$/g, ''); if (data && rvalidchars.test (data.replace (rvalidescape, "@") .retlace (rvalidtokens, "]") .redplace (rvalidbraces, ""))) {return (ฟังก์ชั่นใหม่ ("กลับ" + data)) (); } } กลับ ''; -ขยายวิธีการ
angela.extend = function () {//# ส่วนขยายวัตถุ var เป้าหมาย = อาร์กิวเมนต์ [0] || {}, i = 1, length = arguments.length, ตัวเลือก; if (typeof target! = "object" && typeof target! = "function") target = {}; สำหรับ (; i <length; i ++) {ถ้า ((ตัวเลือก = อาร์กิวเมนต์ = อาร์กิวเมนต์ [i])! = null) {สำหรับ (ชื่อ var ในตัวเลือก) {var copy = ตัวเลือก [ชื่อ]; if (target === คัดลอก) {ดำเนินการต่อ; } if (คัดลอก! == undefined) {target [name] = copy; }}}} return target;};วิธีการตัดสินประเภท
/** ตัดสินว่า Val ตัวแปรเป็นประเภทจำนวนเต็ม*/ฟังก์ชัน ISNUMBER (val) {return typeof val === 'number' && isfinite (val);}/** ตัดสินว่า Val ตัวแปรเป็นประเภทบูลีน*/ฟังก์ชัน Isboolean === 'String';}/** ตัดสินว่า Val ตัวแปรนั้นไม่ได้กำหนด*/ฟังก์ชั่น isundefined (val) {return typeof val ==== 'String';}/** ตัดสินว่า Val ตัวแปรนั้นไม่ได้กำหนด*/ฟังก์ชัน isundefined (val) (str === null || typeof str === 'undefined') {return false; } return typeof str === 'object';}/** ตัดสินว่า val ตัวแปรเป็น null*/function isnull (val) {return val === null;}/** ตัดสินว่าตัวแปร arr เป็นอาร์เรย์*วิธี 1*/ฟังก์ชัน isarray1 (arr) {return object.prototype เป็นอาร์เรย์*วิธี 2*/ฟังก์ชั่น isarray2 (arr) {ถ้า (arr === null || typeof arr === 'undefined') {return false; } return arr.constructor === array;}