Набор метода массива
Angela.array = {//# Метод массива // Индекс, вернуть позицию! Если его не существует, он возвращает -1; index: function (t, arr) {//# возвращает позицию массива, где текущее значение расположено, если (arr.indexof) {return arr.indexof (t); } for (var i = arr.length; i--;) {if (arr [i] === t) {return i * 1; }}; возврат -1; } // Возвращает значение ключа объекта! Тип возвращаемого значения - это массив. , getKey: function (data) {//# вернуть все значения ключей объекта arr arr = [], k; для (k в данных) {arr.push (k); }; возврат Arr; } // Случайно извлечь значение из массива, случайное: function (массивы) {//# случайным образом извлечь значение из массивов массива = массивы || []; var len = arrays.length, index = tydic.math.randint (0, len - 1); возвращаемые массивы [index] || ''; } // Одномерная массива дедупликация, уникальная: function (массив) {//# одномерное массив массив Array = Array || []; for (var i = 0, len = array.length; i <len; i ++) {for (var j = i+1; j <array.length; j ++) {if (array [i] === Array [j]) {array.splice (j, 1); J--; }}} return Array; } // max, самый большой термин в массиве, max: function (массив) {//#Найти самый большой термин в массиве return math.max.apply (null, массив); } // min, наименьший член в массиве, мин: функция (массив) {//#Найти наименьший элемент в массиве return math.min.apply (null, массив); } // Удалить, удалить, удалить: function (array, value) {//#Удалить значение в массиве var length = array.length; while (длина-) {if (value === Array [длина]) {array.splice (длина, 1); }} return Array; } // очистить массив, пусто: функция (массив) {//# очистить массив (массив || []). Length = 0; вернуть массив; } // RemoveAt, удалить значение указанной позиции //@index, index. Если индекс не пройден, первый будет удален, Removeat: function (массив, индекс) {//#удалить значение указанной позиции в массиве Array.splice (index, 1); вернуть массив; } // Скрат массив сортировки, shuffle: function (arr) {//#scrap массив сортировки var array = (arr || []). Concat (), длина = array.length, i = длина // езда, tmp = null // временное, rand = tydic.math.randint // position, pos = 0; while (i--) {pos = rand (0, длина); // обмениваться случайным положением tmp = array [pos]; Array [pos] = массив [i]; массив [i] = tmp; } return Array; }};Набор методов cookie
Angela.cookie = {//# cookie // Браузер поддерживает файлы cookie. enable: !! navigator.cookieEnabliabled // Читать cookie, get: function (имя) {//#читать cookie var reg = new regexp ("(^|)" + name + "(? вернуть Вэл? (val [2]? Unescape (val [2]): ""): ''; } // Напишите файлы cookie, set: function (имя, значение, истечение, путь, домен, безопасный) {//# записать cookie var exp = new date (), истекать = аргументы [2] || null, path = аргументы [3] || "/", Domain = аргументы [4] || null, secure = аргументы [5] || ЛОЖЬ ; истекает? exp.setminutes (exp.getminutes () + parseint (истекает)): ""; document.cookie = name + '=' + exck (value) + (истекает? } // Удалить файлы cookie, del: function (имя, path, domain, secure) {//#delete cookie var value = $ getCookie (name); if (value! = null) {var exp = new Date (); exp.setminutes (exp.getminutes () - 1000); Путь = Путь || "/"; document.cookie = name + '=; истекает =' + exp.togmtstring () + (path? '; path =' + path: '') + (domain? }}};Набор метода URL
Angela.url = {//#url // Статьи: Имя переменной, если URL пуст, таблица будет принимать GetQuery из URL -адреса текущей страницы: функция (имя, url) {var u = аргументы [1] || window.location.search, reg = new regexp ("(^| &)" + name + "= ([^&]*) (& | $)"), r = u.substr (u.indexof ("?") + 1) .match (reg); вернуть r! = null? r [2]: ""; }, gethash: function (name, url) {//# get hash value var u = аргументы [1] || location.hash; var reg = new Regexp ("(^| &)" + name + "= ([^&]*) (& | $)"); var r = u.substr (u.indexof ("#") + 1) .match (reg); if (r! = null) {return r [2]; } возвращаться ""; }, parse: function (url) {//# parse url var a = document.createelement ('a'); url = url || document.location.href; a.href = url; return {source: url, protocol: a.protocol.replace (':', ''), host: a.hostname, port: a.port, query: a.search, файл: (a.pathname.match (/(^//?#]+) $/i) || a.pathname.replace (/^([^//])/, '/$ 1'), относительно: (a.href.match (/tps?: //// [^//]+(.+)/) || [, '']) [1], сегменты: a.pathname.replace (/^///, ') .split ('/'); }};Набор методов регулярного выражения
Angela.Regexp = {//# String Match // Будь то число! целое число, номер плавающей запятой isnum: function (num) {//# это возврат массива! isnan (num); }, isemail: function (mail) {//# is evertement return /^(n+ Z0-9N+=/-/.bybox)***(m[-z0-9§_/ -/. }, isIdcard: function (card) {//# это идентификационная карта возврат /^(/d{14 )/dшит }, ismobile: function (mobile) {//# это возврат телефона /^0*1/d{10) $/.test(mobile); }, isqq: function (qq) {//# is a Qq return /^^1-9^/d{4,10) $/.test(qq); }, ISTEL: function (tel) {//# is evertement return /^/dшит так. }, isurl: function (url) {//# is url return/https?:////na-z0-9/./ -/-^ }, iscolor: function (color) {//#, будь то шестнадцатеричный возврат цвета /#(^/da-f^ } // @ID: ID -карта, // @Now: текущее время, такое как: новая дата ('2013/12/12'), '2013/12/12' // @age: разрешенный возраст, Исадулт: Функция (ID, пособие, сейчас) {//## Взрослый возраст VAR = 0 ////год пользователя, месяц, день, сейчас. Пополнение = parsefloat (пополнение) || 18; Теперь = typeof now == 'string'? Новая дата (сейчас): (теперь || новая дата ()); if (! this.isidcard (id)) {return false; } // 15-битная идентификационная карта if (15 == id.length) {age = '19' + id.slice (6, 6); } else {age = id.slice (6, 14); } // Тип преобразования целое число возраст = ~~ возраст; alwydate = ~~ (tydic.date.format ('yyyymmdd', сейчас)); // Сравните возраст if (owndate - возраст <rongage * 1e4) {return false; } вернуть true; } // float, isfloat: function (num) {//# это возврат плавающей запятой /^((N1-9^/D*))(/d+/./d+) 000) $/.test(num); } // Положительное целое число, ISINT: function (num) {//#, будь то положительное целое число return /^^1-9§/d*^,/.test(num); } // Это все китайские иероглифы, ишинесцы: function (str) {//# это все китайские иероглифы возвращаются /^(^ • }};Строковый метод набор
Angela.string = {//# string codehtml: function (content) {//# escape html символов возвращает это. "*", '+': "+", ',': ",", '-': "-", '.': ".", '/': "/", '? ":"? " } // Повторите строку, повторение: function (слово, длина, конец) {//# повторить строку end = end || ''; // Добавить к последней длине = ~~ длина; вернуть новый массив (длина * 1 + 1) .join (Word) + '' + end; } // Добавить префикс, addPre: function (pre, word, size) {//# Make Up. Если вы предшествуете 0 pre = pre || '0'; size = parseint (размер) || 0; Word = String (Word || ''); var length = math.max (0, size - word.length); вернуть это. Repeat (pre, длина, слово); } // Удалить пространства с обеих сторон, обрезка: функция (текст) {//# Удалить пространства с обеих сторон return (текст || '') .Replace (/^/s+|/s $/, ''); } // Замена строки, заменить: function (str, re) {//# string замена str = str || ''; for (var in in re) {replace (key, re [key]); }; Функция заменить (a, b) {var arr = str.split (a); str = arr.join (b); }; вернуть Str; }, xss: function (str, type) {//# xss Escape // Пустой фильтр if (! str) {return str === 0? "0": ""; } switch (type) {case "html": // Фильтр xss в html string return str.replace (/[& '"<> /////////-/x00-/x09/x0b-/x0c/x1f/x80-/xff]/g, function (r) {return" &#" + r.charcodeat (0) +"; «). str.replace (/[& '"<> //////-/x00-/x1f/x80-/xff]/g, function (r) {return" &#" + r.charcodeat (0) +"; "}); перерыв; case "url": // фильтровать recape rececule url (str) .replace (//+/g, "%2b"); перерыв; Дело "miniurl": return str.replace (/%/g, "%25"); перерыв; case "Script": return str.replace (/[// "]/g, function (r) {return" // " + r;}). Заменить (/%/g," //x25").replace(//n/g, "//n").replace(//r/g" //r roplace(/x01/g "//x01"); str.Replace (/^//^/$/*/+/?/bearts (r) {return "&#" + R.CharcoDeat (0) + ";"}). Заменить (//g, ""). "<br />" />").replace(//r/g, "<br />"); Break;}} // Badword, чувствительные слова, чувствительные к фильтру //@@@text: текст для фильтрации, тип: строка //@слова: чувствительные слова, тип, массив, такие как: [твоя сестра ', я теряю,', «Черт возьми» / / / / / / / / //e way way hash what a the ward ’wance '] / / / / / / / //e pertorm секунды! var reg = new regexp (words.join ('|'), 'g'), _self = this; возврат текст. }};Набор метода шифрования
Angela.encrypt = {//# incryption md5: function (words) {//# md5 hash algorithm/ * * crypto-js 3.1.2 * http://code.google.com/p/crypto-js */var cryptojs = function (s, p) {var m = {}, l = m. }, r = l.base = {extend: function (b) {n.prototype = this; var h = new n; b && h.mixin (b); H.hashownproperty ("init") || (h.init = function () {h. $ super.init.apply (this, аргументы)}); h.init.prototype = h; h. $ super = это; return h}, create: function () {var b = this.extend (); b.init.apply (b, аргументы); return b}, init: function () {}, mixin: function (b) {for (var h in b) b.hashownproperty (h) && (this [h] = b [h]); b.hashownproperty ("toString") && (this.ToString = b.toString)}, клон: function () {return this.init.prototype.extend (this)}}, q = l. wordarray = r.extend ({init: function (b, h) {b = this.wroads = b || B.Length}, ToString: Function (b) {return (b || t). (a [g >> 2] >> 24 - 8 * (G % 4) и 255) << 24 - 8 * ((J + G) % 4); CLAMP: function () {var b = this.words, h = this.sigbytes; (b) {for (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; for (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))} return g.join (")}, parse: function (b) {for (var a = b.length, g = [], j = 0; j <a; j += 2) g [j >>> 3] | = parseint (b.substr (j, 2), 16) << 24 - 4 * (j % 8); вернуть новый Q.init (g, a / 2)}}, a = v.latin1 = {stringify: function (b) {var a = b.words; b = b.sigbytes; for (var g = [], j = 0; j <b; j ++) g.push (string.fromCharcode (a [j >>> 2] >>> 24 - 8 * (j % 4) & 255)); return g.join ("")}, parse: function (b) {for (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) {try {return decodeuricomponent (ascaving (a.stringify (b)))} catch (g) {throw error («необработанные данные UTF-8»); }}, parse: function (b) {return a.parse (unescape (encodeuricomponent (b))}}, g = l.bufferedblockalgorithm = r.extend ({reset: function () {this._data = new q.init; this._ndaTabytes = 0}, _Append: function (bersefend {bersefend {bersefend: indation (bersefend {bersefend: indafend: weps (bersefend: string; (b = u.parse (b)); S.Max ((M | 0) - this._minbuffersize, 0); Clone: function () {var b = r.clone.call (this); l.hasher = g.extend ({cfg: r.extend (), init: function (b) {this.cfg = this.cfg.extend (b); this.reset ()}, reset: function () {g.reset.call (this); this._doreset ()}, upply: function (b) {this. вернуть это}, winloise: function (b) {b && this._append (b); (новый k.hmac.init (b, g)). infintize (a)}}}); var k = m.algo = {}; return m} (math); (Функция (s) {function p (a, k, b, h, 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) {a = a + (k & h | b & ~ h) + l; 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; } for (var r = cryptojs, q = r.lib, v = Q.WordArray, t = Q.Hasher, Q = R.Algo, a = [], U = 0; 64> U; U ++) a [u] = 4294967296 * S.Abs (S.Sin (U+1) | this._hash = new V.Init ([1732584193, 4023233417, 2562383102, 271733878])}, _doprocessblock: function (g, k) {for (var b = 0; 16> b; b ++) {var h = k, w = g [h]; g [h] = (w << 8 | w >>> 24) и 16711935 | (w << 24 | w >>> 8) и 4278255360} 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], s = g [k + 5], t = g [k + 6], k [k + 4], s = g [k + 5], t = g [k + 6], k [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], f = B [3], c = p (c, d, h, h, a), f [2], f = b [3], c = p (c, d, h, a), f [2], f = b [3], c = p (c, d, f [2], f = b 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, r, 7, a[4]), f = p(f, c, d, e, s, 12, a[5]), e = p(e, f, c, 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]), e = p(e, f, c, d, y, 17, a[10]), d = p(d, e, f, c, z, 22, 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]), d = p(d, e, f, c, D, 22, a[15]), c = m(c, d, e, f, w, 5, a[16]), f = 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, s, 5, a[20]), f = m(f, c, d, e, y, 9, a[21]), e = m(e, f, 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]), E = M (E, F, C, C, C, C, C, C, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E. 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]), d = m(d, e, f, c, v, 20, a[27]), c = m(c, d, e, f, B, 5, a[28]), f = 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, A, A, 20, A [31], C = L (C, D, E, F, S, A, A, A, A, A, F, F, F, F, A, A, A, A, F, F, F, A, A, A, F, F, F, F, A, A, A, F, F, F, F, F, A, A, 20, A [31]), C = L (C, D, E, F, A, A, 20, A [31], C = L (C, D, E. 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, f, c, C, 23, a[35]), c = l(c, d, e, f, w, 4, a[36]), f = l(f, 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, B, 4, a[40]), f = 1, a[41]), e = l(e, f, c, d, d, q, 16, 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]), e = l(e, f, c, d, D, 16, a[46]), d = l(d, e, f, c, j, 23, 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]), e = n(e, f, c, c, c, c, d = n(d, e, f, c, s, 21, a[51]), c = 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, w, 21, a[55]), c = n(c, d, e, f, v, 6, a[56]), f = 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, F, R, 6, A [60], F = N (F, C, D, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, 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; for (b = 0; 4> b; b ++) h = k [b], k [b] = (h << 8 | h >>> 24) и 16711935 | (H << 24 | H >>> 8) & 4278255360; вернуть a}, клон: function () {var a = t.clone.call (this); a._hash = this._hash.clone (); вернуть a}}); r.md5 = t._createhelper (q); r.hmacmd5 = t._createhmachelper (q)}) (Math); return cryptojs.md5 (слова) .toString (); } // sha1, sha1: function (words) {//## sha1 hash hAshing algorithm var cryptojs = function (e, m) {var p = {}, j = p.lib = {}, l = function () {}, f = j.base = {extend: function (a) {l.prototype = this; var c = new L; a && c.mixin (a); C.hashownproperty ("init") || (c.init = function () {c. $ super.init.apply (this, аргументы)}); c.init.prototype = c; c. $ super = это; return c}, create: function () {var a = this.extend (); a.init.apply (a, аргументы); вернуть a}, init: function () {}, mixin: function (a) {for (var c в a) a.hasownproperty (c) && (this [c] = a [c]); A.hashownproperty ("toString") && (this.ToString = A.ToString)}, клон: function () {return this.init.prototype.extend (this)}}, n = j.wordarray = f.extend ({init: function (a, c) {a = this.wroads = a || * A.Length}, ToString: Function (a) {return (a || H). (Q [B >> 2] >> 24 - 8 * (B % 4) и 255) } Clamp: Function () {var a = this.words, c = this.sigbytes; случайный: function (a) {for (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; for (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 (")}, parse: function (a) {for (var c = a.length, b = [], d = 0; d <c; d += 2) b [d >>> 3] | = parseint (a.substr (d, 2), 16) << 24 - 4 * (d % 8); вернуть новый n.init (b, c / 2)}}, g = b.latin1 = {stringify: function (a) {var c = a.words; a = a.sigbytes; for (var b = [], d = 0; d <a; d ++) b.push (string.fromCharcode (c [d >>> 2] >>> 24 - 8 * (D % 4) & 255)); return b.join ("")}, parse: function (a) {for (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) {try {return decodeuricomponent (ascop (g.stringify (a)))} catch (c) {throw error ("maleformed utf-8 data"); }}, parse: function (a) {return g.parse (unescape (encodeuricomponent (a)))}}, k = j.bufferedblockalgorithm = f.extend ({reset: function () {this._data = new N.Init; this._Ndatabytes = 0}, _Append: a) {a_Append: a) {a_append: a) {a) {a) {a) {a)} (A = R.Parse (A)); E.max ((H | 0) - This._minbuffersize, 0); Function () {var a = f.clone.call (this); j.hasher = k.extend ({cfg: f.extend (), init: function (a) {this.cfg = this.cfg.extend (a); this.reset ()}, reset: function () {k.reset.call (this); this._doreset ()}, обновление: function (a) {this. this._process (); (b, f) {return (new s.hmac.init (a, f)). infintize (b)}}}); var s = p.algo = {}; return p} (math); (function () { var e = CryptoJS, m = e.lib, p = m.WordArray, j = m.Hasher, l = [], m = e.algo.SHA1 = j.extend({ _doReset: function () { this._hash = new p.init([1732584193, 4023233417, 2562383102, 271733878, 328537520])}, _doprocessblock: function (f, n) {for (var b = this._hash.words, h = b [0], g = b [1], e = b [2], k = b [3], j = b [4], a = 0; 80> a; a ++) {in (a) a [a] a [a] = f [a] C = L [A - 3] ^ L [A - 8] ^ L [A - 14] ^ L [A - 16]; 185975393: 60> ] + G |. << 24 - H % 32; e [(H + 64 >>> 9 << 4) + 15] = b; f.sigbytes = 4 * e.length; this._process (); вернуть this._hash}, клон: function () {var e = j.clone.call (this); e._hash = this._hash.clone (); return e}}); e.sha1 = j._createhelper (m); e.hmacsha1 = j._createhmachelper (m)}) (); return cryptojs.sha1 (слова) .toString (); } // Time33 Hash, Time33: function (words) {//# Time33 Hash Algorithm Words = words || ''; // hash time33 алгоритм для (var i = 0, len = words.length, hash = 5381; i <len; ++ i) {hash += (hash << 5) +words.charat (i) .charcodeat (); }; вернуть хэш & 0x7ffffffff; }}Набор метода даты
Angela.date = {//# дата времени //@S: время начала //@e: время окончания //@n: текущее время, n Isinarea: function (s, e, n) {//## reaum aem arem var var = this.parse (s), end = this.parse (e), теперь = parsefloat (n) || Новая дата (); start = math.min (start, end); end = math.max (start, end); вернуть сейчас> = start && сейчас <= end? Верно: Неверно; } // конвертировать символы в Milliseconds //@Дата: 2013-03-02 1: 2: 2, parse: function (date) {//# формат дата возврата. //.replace(/-/g, '/')} //@время, время, например, новая дата ('2013/11/10 0:12:12') //@pre, префикс недели, такой как: неделя, неделя //@nums, например: один, три, четыре, пять и шесть дней, getweek: function (time, pre, nums) {//thry, пять и шесть дней. 'нить' ? this.parse (время): (время || new Date ()); pre = pre || 'Неделя'; // недели nums = 'день, два, три, четыре, пять, шесть'; вернуть pre + nums [time.getday ()]; } //@formattype: yyyy, yy, mm //@time: новая дата ('2013/11/12') //@недели: день, два, три, четыре, пять, шесть, формат: функция (formattype, время, недели) {// формат времени вывода var pre = '0'; formattype = formattype || 'Yyy-mm-dd' недели = недели || «Первый, два, три, четыре, пять, шесть»; время = время || Новая дата (); //Formattyp.com return (formattype || '') .Replace (/yyyy | yyyy/g, time.getfyear ()) .Replace (/yy | yy/g, tydic.string.addpre (pre, time.getbleear () % 100). Time.getMonth () + 1, 2)) .Replace (/m | m/g, time.getmonth () + 1) .replace (/dd | dd/g, tydic.string.addpre (pre, time.getdate (), 2). Tydic.string.addpre (pre, time.gethours (), 2). Tydic.string.addpre (pre, time.getSeconds (), 2)) .Replace (/s | s/g, time.getSeconds ()) .Replace (/w/g, time.getDay ()) .Replace (/w/g, недели [time.getday ()]); } // Обратный отсчет, обратный отсчет: function (opt) {//# countdown var option = {nowtime: 0 // Текущее время, 2013/02/01 18:30:30, конец времени: 0 // Deadline, 2013/02/01 18:30:30, интервал: 1 // Время звонков с интервалом, второй, вызов: Функция (день, секунду, второй, минута). {} // обратный вызов после завершения}, opts = {}, timer = null; opts = tydic.extend (опция, Opt); // текущее время if (! Opts.nowtime) {opts.nowtime = (new Date ()). GetTime (); } else {opts.nowtime = this.parse (opts.nowtime); } // текущее время if (! Opts.endTime) {opts.endTime = (new Date ()). GetTime (); } else {opts.endtime = this.parse (opts.endtime); } timer = setInterval (loop, opts.interval * 1e3); // цикл Function Loop () {var ts = opts.endtime - opts.nowtime // Рассчитайте оставшиеся миллисекунды, dd = parseint (ts/8,64e7) // Рассчитайте оставшиеся дни, HH = ParseInt (TS/3,6E7 % 24) // Рассчитайте оставшиеся несколько часов, MM = PARSEINT (TS/6E7 % 64) // Расчеты. = parseint (TS/1E3 % 60) // Рассчитайте оставшиеся секунды; // Рассчитайте текущее сокращение времени Opts.nowtime += Opts.Interval * 1E3; if (ts <= 0) {clearInterval (таймер); opts.finaled (); } else {opts.called (dd, HH, MM, SS); }}}};Набор методов обнаружения браузера
Angela.Browser = {//# Browser Browsers: {//## категория браузера категория Weixin: /micromessenger(//ns/d/.+)*/ // WeChat встроенный браузер, MQQ: /MQQBROWSER(//D/.+)* // Мобильный QQ Browser, UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: UC: /UCBROWSER(//ns/d/.+)**/ // UC Browser, Chrome: /(?:CHROME|Crios)(//ns/d/.+)**/ // Chrome Browser, Firefox: /firefox(//d/.+)*/ // // Firefox Browser, Opera: /Pera(//*/S1/SS:/// ///// // // Firefox Browser, Opera: /PERA(/*/S. // Открыть браузер, sougou: /sogoumobilebrowser(//ns/./.+)**/ // Sogou Mobile Browser, Baidu: /baidubrowser(///d/.+)**/ // Мобильный браузер Baidu, 360: /360browser(тность/d/**/ // 360. /сафари(//ns/d/.+)**/ // safari, т.е.: /msie/s(^/d/.+)**/ // ie Browser} //@errcall: обратный вызов ошибки, addfav: function (url, title, errcall) {//#добавить в фавориты {window.external.addfavorte (urcall) {//#добавить в фаворит {window.external.addfavorite (urcall); } catch (e) {try {window.sidebar.addpanel (title, url, ''); } catch (e) {errcall (); }}}}, // версия браузера coreinit: function () {//#noadd var i = null, browsers = this.browsers, ua = window.navigator.useragent.tolowercase (), browser = '', pos = 1; for (i в браузерах) {if (brower = ua.match (браузеры [i])) {if (i == 'opera') {pos = 2; } else {pos = 1; } this.version = (Brower [pos] || '') .replace (/[/// s]+/, ''); this.core = i; вернуть я; }}} // Обнаружение версии IE! Только поддерживается IE: версия 5,6,7,8,9, т.е. ']> </i> <! [Endif]->', все [0]);метод JSON
Angela.json = {//## json object // string становится объектом json parse: function (data) {//# string format, стать объектом json var // json regexp rvalidchars =/^[/],: {}/s]*$/, rvalidbrace =/(? ////(? if (window.json && window.json.parse) {return window.json.parse (data); } if (data === null) {return data; } if (typeof data === "string") {data = data.replace (/^/s+|/s+$/g, ''); if (data && rvalidchars.test (data.replace (rvalidescape, "@") .replace (rvalidtokens, "]") .replace (rvalidbraces, ""))) {return ("return" + data)) (); } } возвращаться ''; }};расширить метод
Angela.extend = function () {//# ovect extension var target = аргументы [0] || {}, i = 1, length = arguments.length, options; if (typeof target! = "object" && typeof target! = "function") target = {}; for (; i <length; i ++) {if ((options = arguments [i])! = null) {for (var in options) {var copy = options [name]; if (target === copy) {продолжить; } if (copy! == undefined) {target [name] = copy; }}}} return Target;};Методы суждения типа
/** Судья, является ли переменная al -val целочисленным типом*/function isnumber (val) {return typeof val === 'number' && isfinite (val);}/** Судья, является ли переменная Val -логический тип*/function isboolean (val) {return typeOf val === 'boolean';}/** Судья val -al -val -val -val ispring val -valling val -val -val === 'string';}/** судить, является ли переменная val не определен*/function isundefined (val) {return typeOf val ==== 'string';}/** Судья, является ли вал переменной не определен*/Функция isundefined (val) {return typef val ==== 'Undefined';}/** Судья вало (str === null || typeof Str === 'undefined') {return false; } return typef ars === 'object';}/** Судите, является ли переменная al al val null*/function isnull (val) {return val === null;}/** Судья, является ли переменная ARR - массив*Метод 1*/function ISArray1 (arr) {return object.prototype.toString.Apply (arr) = array1 (arr) {rest object. массив*Метод 2*/function isarray2 (arr) {if (arr === null || typeof arr === 'undefined') {return false; } return arr.constructor === Array;}