常用的JavaScript WEB操作方法分享

 这篇文章主要介绍了常用的JavaScript WEB操作方法分享,包含数组方法集、cookie方法集、url方法集、正则表达式方法集、字符串方法集、加密方法集、日期方法集等常用操作方法,需要的朋友可以参考下

 
 

数组方法集

?

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

Angela.array = { //# 数组方法
// index, 返回位置! 不存在则返回 -1;
index: function (t, arr) { //# 返回当前值所在数组的位置
if (arr.indexOf) {
return arr.indexOf(t);
}
for (var i = arr.length ; i--;) {
if (arr[i] === t) {
return i * 1;
}
};
return -1;
}
//返回对象 的 键值! 返回值 类型为数组。
, getKey: function (data) { //# 返回对象所有的键值
var arr = []
, k
;
for (k in data) {
arr.push(k);
};
return arr;
}
//从数组中 随机取出 一个值
, random: function (arrays) { //# 从数组中 随机取出 一个值
arrays = arrays || [];
var len = arrays.length
, index = Tydic.math.randInt(0, len - 1)
;
return arrays[index] || '';
}
// 一维 数组去重
, unique: function (array) { //#一维数组去重
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 (array) {//#求数组中最大的项
return Math.max.apply(null, array);
}
// min , 数组中最小的项
, min: function (array) { //#求数组中最小的项
return Math.min.apply(null, array);
}
// remove , 移除
, remove: function (array, value) { //#移除数组中某值
var length = array.length;
while (length--) {
if (value === array[length]) {
array.splice(length, 1);
}
}
return array;
}
//清空数组
, empty: function (array) { //# 清空数组
(array || []).length = 0;
return array;
}
// removeAt ,删除指定位置的 值
//@index , 索引. 不传递 index ,会删除第一个
, removeAt: function (array, index) { //#删除数组中 指定位置的值
array.splice(index, 1);
return array;
}
//打乱数组排序
, shuffle: function (arr) { //#打乱数组排序
var array = (arr || []).concat()
, length = array.length
, i = length //遍历
, tmp = null // 临时
, rand = Tydic.math.randInt //位置
, pos = 0
;
while (i--) {
pos = rand(0, length);
//交换随机位置
tmp = array[pos];
array[pos] = array[i];
array[i] = tmp;
}
return array;
}
};

cookie方法集

?

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

Angela.cookie = { //# Cookie
// 浏览器是够支持 cookie
enable: !!navigator.cookieEnabled
//读取COOKIE
, get: function (name) { //#读取 cookie
var reg = new RegExp("(^| )" + name + "(?:=([^;]*))?(;|$)")
, val = document.cookie.match(reg)
;
return val ? (val[2] ? unescape(val[2]) : "") : '';
}
//写入COOKIES
, set: function (name, value, expires, path, domain, secure) { //# 写入 cookie
var exp = new Date()
, expires = arguments[2] || null
, path = arguments[3] || "/"
, domain = arguments[4] || null
, secure = arguments[5] || false
;
expires ? exp.setMinutes(exp.getMinutes() + parseInt(expires)) : "";
document.cookie = name + '=' + escape(value) + (expires ? ';expires=' + exp.toGMTString() : '') + (path ? ';path=' + path : '') + (domain ? ';domain=' + domain : '') + (secure ? ';secure' : '');
}
//删除cookie
, del: function (name, path, domain, secure) { //#删除 cookie
var value = $getCookie(name);
if (value != null) {
var exp = new Date();
exp.setMinutes(exp.getMinutes() - 1000);
path = path || "/";
document.cookie = name + '=;expires=' + exp.toGMTString() + (path ? ';path=' + path : '') + (domain ? ';domain=' + domain : '') + (secure ? ';secure' : '');
}
}
};

url方法集

?

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

Angela.url = { //#URL
//参数:变量名,url为空则表从当前页面的url中取
getQuery: function (name, url) {
var u = arguments[1] || window.location.search
, reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)")
, r = u.substr(u.indexOf("?") + 1).match(reg)
;
return r != null ? r[2] : "";
}
, getHash: function (name, url) { //# 获取 hash值
var u = arguments[1] || location.hash;
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = u.substr(u.indexOf("#") + 1).match(reg);
if (r != null) {
return r[2];
}
return "";
}
, parse: function (url) { //# 解析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
, file: (a.pathname.match(/([^/?#]+)$/i) || [, ''])[1]
, hash: a.hash.replace('#', '')
, path: a.pathname.replace(/^([^/])/, '/$1')
, relative: (a.href.match(/tps?://[^/]+(.+)/) || [, ''])[1]
, segments: a.pathname.replace(/^//, '').split('/')
};
}
};

正则表达式方法集

?

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

Angela.regExp = { //# 字符串匹配
//是否为 数字!整数,浮点数
isNum: function (num) { //# 是否为数组
return !isNaN(num);
}
, isEmail: function (mail) {//# 是否为 邮箱
return /^([a-z0-9]+[_-.]?)*[a-z0-9]+@([a-z0-9]+[_-.]?)*[a-z0-9]+.[a-z]{2,5}$/i.test(mail);
}
, isIdCard: function (card) { //# 是否为 身份证
return /^(d{14}|d{17})(d|[xX])$/.test(card);
}
, isMobile: function (mobile) { //# 是否为 手机
return /^0*1d{10}$/.test(mobile);
}
, isQQ: function (qq) { //# 是否为 QQ
return /^[1-9]d{4,10}$/.test(qq);
}
, isTel: function (tel) { //# 是否为 电话
return /^d{3,4}-d{7,8}(-d{1,6})?$/.text(tel);
}
, isUrl: function (url) { //# 是否为 URL
return /https?://[a-z0-9.-]{1,255}.[0-9a-z-]{1,255}/i.test(url);
}
, isColor: function (color) { //# 是否为 16进制颜色
return /#([da-f]{3}){1,2}$/i.test(color);
}
//@id : 身份证 ,
// @now : 当前时间 如:new Date('2013/12/12') , '2013/12/12'
// @age : 允许的年龄
, isAdult: function (id, allowAge, now) { //# 是否年龄是否成年
var age = 0 // 用户 年月日
, nowDate = 0 //当前年月日
;
allowAge = parseFloat(allowAge) || 18;
now = typeof now == 'string' ? new Date(now) : (now || new Date());
 
 
if (!this.isIdCard(id)) {
return false;
}
//15位身份证
if (15 == id.length) {
age = '19' + id.slice(6, 6);
} else {
age = id.slice(6, 14);
}
// 类型转换 整型
age = ~~age;
nowDate = ~~(Tydic.date.format('YYYYMMDD', now));
//比较年龄
if (nowDate - age < allowAge * 1e4) {
return false;
}
return true;
}
//浮点数
, isFloat: function (num) { //# 是否为 浮点数
return /^(([1-9]d*)|(d+.d+)|0)$/.test(num);
}
//正整数
, isInt: function (num) { //# 是否为 正整数
return /^[1-9]d*$/.test(num);
}
//是否全为汉字
, isChinese: function (str) { //# 是否全为 汉字
return /^([u4E00-u9FA5]|[uFE30-uFFA0])+$/gi.test(str);
}
 
};

字符串方法集

?

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

Angela.string = { //# 字符串
codeHtml: function (content) { //# 转义 HTML 字符
return this.replace(content, {
'&': "&"
, '"': """
, "'": '''
, '<': "<"
, '>': ">"
, ' ': " "
, 't': " "
, '(': "("
, ')': ")"
, '*': "*"
, '+': "+"
, ',': ","
, '-': "-"
, '.': "."
, '/': "/"
, '?': "?"
, '': ""
, 'n': "<br>"
});
}
//重复字符串
, repeat: function (word, length, end) { //# 重复字符串
end = end || ''; //加在末位
length = ~~length;
return new Array(length * 1 + 1).join(word) + '' + end;
}
//增加前缀
, addPre: function (pre, word, size) { //# 补齐。如给数字前 加 0
pre = pre || '0';
size = parseInt(size) || 0;
word = String(word || '');
var length = Math.max(0, size - word.length);
return this.repeat(pre, length, word);
}
//去除两边空格
, trim: function (text) { //# 去除两边空格
return (text || '').replace(/^s+|s$/, '');
}
//字符串替换
, replace: function (str, re) { //# 字符串替换
str = str || '';
for (var key in re) {
replace(key, re[key]);
};
function replace(a, b) {
var arr = str.split(a);
str = arr.join(b);
};
return str;
}
, xss: function (str, type) { //# XSS 转义
//空过滤
if (!str) {
return str === 0 ? "0" : "";
}
switch (type) {
case "html": //过滤html字符串中的XSS
return str.replace(/[&'"<>/-x00-x09x0b-x0cx1fx80-xff]/g, function (r) {
return "&#" + r.charCodeAt(0) + ";"
}).replace(/ /g, " ").replace(/rn/g, "<br />").replace(/n/g, "<br />").replace(/r/g, "<br />");
break;
case "htmlEp": //过滤DOM节点属性中的XSS
return str.replace(/[&'"<>/-x00-x1fx80-xff]/g, function (r) {
return "&#" + r.charCodeAt(0) + ";"
});
break;
case "url": //过滤url
return escape(str).replace(/+/g, "%2B");
break;
case "miniUrl":
return str.replace(/%/g, "%25");
break;
case "script":
return str.replace(/["']/g, function (r) {
return "" + r;
}).replace(/%/g, "x25").replace(/n/g, "n").replace(/r/g, "r").replace(/x01/g, "x01");
break;
case "reg":
return str.replace(/[^$*+?{}.()[]]/g, function (a) {
return "" + a;
});
break;
default:
return escape(str).replace(/[&'"<>/-x00-x09x0b-x0cx1fx80-xff]/g, function (r) {
return "&#" + r.charCodeAt(0) + ";"
}).replace(/ /g, " ").replace(/rn/g, "<br />").replace(/n/g, "<br />").replace(/r/g, "<br />");
break;
}
}
// badword , 过滤敏感词
//@text : 要过滤的文本 , 类型 :字符串
//@words : 敏感词 ,类型,数组, 如 : ['你妹', '我丢' ,'我靠']
// 如果 用 正则匹配, text 长度 100万,words 100万,需要 4秒!
, badWord: function (text, words) { //# 敏感词过滤
text = String(text || '');
words = words || [];
var reg = new RegExp(words.join('|'), 'g')
, _self = this;
return text.replace(reg, function ($0) {
var length = String($0 || '').length;
return _self.repeat('*', length);
});
}
 
};

加密方法集

?

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

Angela.encrypt = { //# 加密
md5: function (words) { //# md5 哈希算法
/*
* Crypto-JS 3.1.2
* http://code.google.com/p/crypto-js
*/
var CryptoJS = function (s, p) {
var m = {}, l = m.lib = {}, n = function () { }, r = l.Base = { extend: function (b) { n.prototype = this; var h = new n; b && h.mixIn(b); h.hasOwnProperty("init") || (h.init = function () { h.$super.init.apply(this, arguments) }); h.init.prototype = h; h.$super = this; return h }, create: function () { var b = this.extend(); b.init.apply(b, arguments); return b }, init: function () { }, mixIn: function (b) { for (var h in b) b.hasOwnProperty(h) && (this[h] = b[h]); b.hasOwnProperty("toString") && (this.toString = b.toString) }, clone: function () { return this.init.prototype.extend(this) } }, q = l.WordArray = r.extend({ init: function (b, h) { b = this.words = b || []; this.sigBytes = h != p ? h : 4 * b.length }, toString: function (b) { return (b || t).stringify(this) }, concat: function (b) { var h = this.words, a = b.words, j = this.sigBytes; b = b.sigBytes; this.clamp(); if (j % 4) for (var g = 0; g < b; g++) h[j + g >>> 2] |= (a[g >>> 2] >>> 24 - 8 * (g % 4) & 255) << 24 - 8 * ((j + g) % 4); else if (65535 < a.length) for (g = 0; g < b; g += 4) h[j + g >>> 2] = a[g >>> 2]; else h.push.apply(h, a); this.sigBytes += b; return this }, clamp: function () { var b = this.words, h = this.sigBytes; b[h >>> 2] &= 4294967295 << 32 - 8 * (h % 4); b.length = s.ceil(h / 4) }, clone: function () { var b = r.clone.call(this); b.words = this.words.slice(0); return b }, random: function (b) { for (var h = [], a = 0; a < b; a += 4) h.push(4294967296 * s.random() | 0); return new 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); return new 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); return new q.init(g, a) } }, u = v.Utf8 = { stringify: function (b) { try { return decodeURIComponent(escape(a.stringify(b))) } catch (g) { throw Error("Malformed UTF-8 data"); } }, 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 (b) { "string" == typeof b && (b = u.parse(b)); this._data.concat(b); this._nDataBytes += b.sigBytes }, _process: function (b) { var a = this._data, g = a.words, j = a.sigBytes, k = this.blockSize, m = j / (4 * k), m = b ? s.ceil(m) : s.max((m | 0) - this._minBufferSize, 0); b = m * k; j = s.min(4 * b, j); if (b) { for (var l = 0; l < b; l += k) this._doProcessBlock(g, l); l = g.splice(0, b); a.sigBytes -= j } return new q.init(l, j) }, clone: function () { var b = r.clone.call(this); b._data = this._data.clone(); return b }, _minBufferSize: 0 }); 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() }, update: function (b) { this._append(b); this._process(); return this }, finalize: function (b) { b && this._append(b); return this._doFinalize() }, blockSize: 16, _createHelper: function (b) { return function (a, g) { return (new b.init(g)).finalize(a) } }, _createHmacHelper: function (b) { return function (a, g) { return (new k.HMAC.init(b, g)).finalize(a) } } }); var k = m.algo = {}; return m
}(Math);
(function (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 } function m(a, k, b, h, l, j, m) { a = a + (k & h | b & ~h) + l + m; return (a << j | a >>> 32 - j) + k } function l(a, k, b, h, l, j, m) { a = a + (k ^ b ^ h) + l + m; return (a << j | a >>> 32 - j) + k } function n(a, k, b, h, l, j, m) { a = a + (b ^ (k | ~h)) + l + m; return (a << j | a >>> 32 - j) + k } 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)) | 0; q = q.MD5 = t.extend({
_doReset: function () { this._hash = new v.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (g, k) {
for (var b = 0; 16 > b; b++) { var h = k + b, 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], u = g[k + 7], v = g[k + 8], 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, e, f, h, 7, a[0]), f = 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, 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, D, 14, a[22]), d = m(d, e, f, c, r, 20, 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[31]), c = l(c, d, e, f, s, 4, a[32]), f = l(f, c, d, e, v, 11, a[33]), e = l(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 = l(f, c, d, e, h, 11, a[41]), e = l(e, f, c, 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,
C, 15, a[50]), 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, z, 10, a[61]), e = n(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 * this._nDataBytes, h = 8 * a.sigBytes; k[h >>> 5] |= 128 << 24 - h % 32; var l = s.floor(b / 4294967296); k[(h + 64 >>> 9 << 4) + 15] = (l << 8 | l >>> 24) & 16711935 | (l << 24 | l >>> 8) & 4278255360; k[(h + 64 >>> 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; return a }, clone: function () { var a = t.clone.call(this); a._hash = this._hash.clone(); return a }
}); r.MD5 = t._createHelper(q); r.HmacMD5 = t._createHmacHelper(q)
})(Math);
return CryptoJS.MD5(words).toString();
}
// sha1
, sha1: function (words) { //# sha1 哈希算法
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.hasOwnProperty("init") || (c.init = function () { c.$super.init.apply(this, arguments) }); c.init.prototype = c; c.$super = this; return c }, create: function () { var a = this.extend(); a.init.apply(a, arguments); return a }, init: function () { }, mixIn: function (a) { for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]); a.hasOwnProperty("toString") && (this.toString = a.toString) }, clone: function () { return this.init.prototype.extend(this) } }, n = j.WordArray = f.extend({ init: function (a, c) { a = this.words = a || []; this.sigBytes = c != m ? c : 4 * a.length }, toString: function (a) { return (a || h).stringify(this) }, concat: function (a) { var c = this.words, q = a.words, d = this.sigBytes; a = a.sigBytes; this.clamp(); if (d % 4) for (var b = 0; b < a; b++) c[d + b >>> 2] |= (q[b >>> 2] >>> 24 - 8 * (b % 4) & 255) << 24 - 8 * ((d + b) % 4); else if (65535 < q.length) for (b = 0; b < a; b += 4) c[d + b >>> 2] = q[b >>> 2]; else c.push.apply(c, q); this.sigBytes += a; return this }, clamp: function () { var a = this.words, c = this.sigBytes; a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4); a.length = e.ceil(c / 4) }, clone: function () { var a = f.clone.call(this); a.words = this.words.slice(0); return a }, random: function (a) { for (var c = [], b = 0; b < a; b += 4) c.push(4294967296 * e.random() | 0); return new 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); return new 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); return new n.init(b, c) } }, r = b.Utf8 = { stringify: function (a) { try { return decodeURIComponent(escape(g.stringify(a))) } catch (c) { throw Error("Malformed 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: function (a) { "string" == typeof a && (a = r.parse(a)); this._data.concat(a); this._nDataBytes += a.sigBytes }, _process: function (a) { var c = this._data, b = c.words, d = c.sigBytes, f = this.blockSize, h = d / (4 * f), h = a ? e.ceil(h) : e.max((h | 0) - this._minBufferSize, 0); a = h * f; d = e.min(4 * a, d); if (a) { for (var g = 0; g < a; g += f) this._doProcessBlock(b, g); g = b.splice(0, a); c.sigBytes -= d } return new n.init(g, d) }, clone: function () { var a = f.clone.call(this); a._data = this._data.clone(); return a }, _minBufferSize: 0 }); 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() }, update: function (a) { this._append(a); this._process(); return this }, finalize: function (a) { a && this._append(a); return this._doFinalize() }, blockSize: 16, _createHelper: function (a) { return function (c, b) { return (new a.init(b)).finalize(c) } }, _createHmacHelper: function (a) { return function (b, f) { return (new s.HMAC.init(a, f)).finalize(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, 3285377520]) }, _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++) { if (16 > a) l[a] = f[n + a] | 0; else { var c = l[a - 3] ^ l[a - 8] ^ l[a - 14] ^ l[a - 16]; l[a] = c << 1 | c >>> 31 } c = (h << 5 | h >>> 27) + j + l[a]; c = 20 > a ? c + ((g & e | ~g & k) + 1518500249) : 40 > a ? c + ((g ^ e ^ k) + 1859775393) : 60 > a ? c + ((g & e | g & k | e & k) - 1894007588) : c + ((g ^ e ^ k) - 899497514); j = k; k = e; e = g << 30 | g >>> 2; g = h; h = c } b[0] = b[0] + h | 0; b[1] = b[1] + g | 0; b[2] = b[2] + e | 0; b[3] = b[3] + k | 0; b[4] = b[4] + j | 0 }, _doFinalize: function () { var f = this._data, e = f.words, b = 8 * this._nDataBytes, h = 8 * f.sigBytes; e[h >>> 5] |= 128 << 24 - h % 32; e[(h + 64 >>> 9 << 4) + 14] = Math.floor(b / 4294967296); e[(h + 64 >>> 9 << 4) + 15] = b; f.sigBytes = 4 * e.length; this._process(); return this._hash }, clone: 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(words).toString();
}
// time33 哈希
, time33: function (words) { //# time33 哈希算法
words = words || '';
//哈希time33算法
for (var i = 0, len = words.length, hash = 5381; i < len; ++i) {
hash += (hash << 5) + words.charAt(i).charCodeAt();
};
return hash & 0x7fffffff;
}
}

日期方法集

?

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

Angela.date = { //# 日期时间
//@s : 开始时间
//@e : 结束时间
//@n : 当前时间 , n 的格式为 毫秒数
isInArea: function (s, e, n) { //# 判断时间区域
var start = this.parse(s),
end = this.parse(e),
now = parseFloat(n) || new Date()
;
start = Math.min(start, end);
end = Math.max(start, end);
return now >= start && now <= end ? true : false;
}
//把 字符窜转化为 毫秒
//@date : 2013-03-02 1:2:2
, parse: function (date) { //# 格式化时间
return Date.parse(date); //.replace(/-/g, '/')
}
//@time , 时间 , 如 new Date('2013/11/10 0:12:12')
//@pre , 星期的 前缀,如:周 ,星期
//@ nums ,如:一二三四五六日
, getWeek: function (time, pre, nums) { //# 获取星期几
time = typeof time == 'string' ? this.parse(time) : (time || new Date());
pre = pre || '星期'; //周
nums = '日一二三四五六';
return pre + nums[time.getDay()];
}
//@formatType : YYYY, YY, MM
//@ time : new Date('2013/11/12')
//@weeks : 日一二三四五六
, format: function (formatType, time, weeks) { //格式化输出时间
var pre = '0'
 
;
formatType = formatType || 'YYYY-MM-DD'
weeks = weeks || '日一二三四五六';
time = time || new Date();
 
//格式化时间
return (formatType || '')
.replace(/yyyy|YYYY/g, time.getFullYear())
.replace(/yy|YY/g, Tydic.string.addPre(pre, time.getFullYear() % 100), 2)
.replace(/mm|MM/g, Tydic.string.addPre(pre, time.getMonth() + 1, 2))
.replace(/m|M/g, time.getMonth() + 1)
.replace(/dd|DD/g, Tydic.string.addPre(pre, time.getDate(), 2))
.replace(/d|D/g, time.getDate())
.replace(/hh|HH/g, Tydic.string.addPre(pre, time.getHours(), 2))
.replace(/h|H/g, time.getHours())
.replace(/ii|II/g, Tydic.string.addPre(pre, time.getMinutes(), 2))
.replace(/i|I/g, time.getMinutes())
.replace(/ss|SS/g, Tydic.string.addPre(pre, time.getSeconds(), 2))
.replace(/s|S/g, time.getSeconds())
.replace(/w/g, time.getDay())
.replace(/W/g, weeks[time.getDay()])
;
}
//倒计时
, countDown: function (opt) { //# 倒计时
var option = {
nowTime: 0 // 当前时间, ,2013/02/01 18:30:30
, endTime: 0 //截止时间 ,2013/02/01 18:30:30
, interval: 1 //间隔回调时间,秒
, called: function (day, hour, second, minute) { }//每次回调
, finaled: function () { } //完成后回调
}
, opts = {}
, timer = null
;
opts = Tydic.extend(option, 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 / 6e4 % 60)//计算剩余的分钟数
, ss = parseInt(ts / 1e3 % 60)//计算剩余的秒数
;
//当前时间递减
opts.nowTime += opts.interval * 1e3;
if (ts <= 0) {
clearInterval(timer);
opts.finaled();
} else {
opts.called(dd, hh, mm, ss);
}
}
}
};

浏览器检测方法集

?

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

Angela.browser = { //#浏览器
browsers: { //# 浏览器内核类别
weixin: /micromessenger(/[d.]+)*/ //微信内置浏览器
, mqq: /mqqbrowser(/[d.]+)*/ //手机QQ浏览器
, uc: /ucbrowser(/[d.]+)*/ //UC浏览器
, chrome: /(?:chrome|crios)(/[d.]+)*/ //chrome浏览器
, firefox: /firefox(/[d.]+)*/ //火狐浏览器
, opera: /opera(/|s)([d.]+)*/ //欧朋浏览器
, sougou: /sogoumobilebrowser(/[d.]+)*/ //搜狗手机浏览器
, baidu: /baidubrowser(/[d.]+)*/ //百度手机浏览器
, 360: /360browser([d.]*)/ //360浏览器
, safari: /safari(/[d.]+)*/ //苹果浏览器
, ie: /msies([d.]+)*/ // ie 浏览器
}
//@errCall : 错误回调
, addFav: function (url, title, errCall) { //#加入收藏夹
try {
window.external.addFavorite(url, title);
} 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()
, brower = ''
, pos = 1
;
for (i in browsers) {
if (brower = ua.match(browsers[i])) {
if (i == 'opera') {
pos = 2;
} else {
pos = 1;
}
this.version = (brower[pos] || '').replace(/[/s]+/, '');
this.core = i;
return i;
}
}
}
// 检测IE版本 !仅支持IE: 5,6,7,8,9 版本
, ie: (function () { //# 检测IE版本 !仅支: ie5,6,7,8,9
var v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]
);
return v > 4 ? v : false;
})()
, isWebkit: /webkit/i.test(navigator.userAgent)
 
 
};

json方法

?

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

Angela.json = { //# json 对象
// 字符串 变为 json 对象
parse: function (data) { //# 格式化字符串,变为 json 对象
var // JSON RegExp
rvalidchars = /^[],:{}s]*$/
, rvalidbraces = /(?:^|:|,)(?:s*[)+/g
, rvalidescape = /(?:["/bfnrt]|u[da-fA-F]{4})/g
, rvalidtokens = /"[^"rn]*"|true|false|null|-?(?:d+.|)d+(?:[eE][+-]?d+|)/g
;
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 (new Function("return " + data))();
}
}
return '';
}
};

extend方法

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

Angela.extend = function () { //# 对象扩展
var target = arguments[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 name in options) {
var copy = options[name];
if (target === copy) {
continue;
}
if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
};

类型判断的方法

?

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

/*
*判断变量val是不是整数类型
*/
function isNumber(val) {
return typeof val === 'number' && isFinite(val);
}
 
/*
*判断变量val是不是布尔类型
*/
function isBoolean(val) {
return typeof val === 'boolean';
}
 
/*
*判断变量val是不是字符串类型
*/
function isString (val) {
return typeof val === 'string';
}
 
/*
*判断变量val是不是undefined
*/
function isUndefined(val) {
return typeof val === 'undefined';
}
 
/*
*判断变量val是不是对象
*/
function isObj(str) {
if (str===null||typeof str==='undefined') {
return false;
}
return typeof str === 'object';
}
 
/*
*判断变量val是不是null
*/
function isNull(val) {
return val === null;
}
 
/*
*判断变量arr是不是数组
*方法一
*/
function isArray1(arr) {
return Object.prototype.toString.apply(arr) === '[object Array]';
}
 
/*
*判断变量arr是不是数组
*方法二
*/
function isArray2(arr) {
if (arr === null || typeof arr === 'undefined') {
return false;
}
return arr.constructor === Array;
}

时间: 2024-11-01 08:06:11

常用的JavaScript WEB操作方法分享的相关文章

常用的JavaScript模板引擎介绍

这篇文章主要介绍了常用的JavaScript模板引擎介绍,本文介绍了8款常用JavaScript 模板引擎,着重讲解了artTemplate模板引擎,需要的朋友可以参考下     最近工作内容慢慢接近我的理想化(web前端),所以关注比较多的是前端性能!后台同事介绍使用ajax模板引擎,提高渲染速度! 下面介绍几款 JavaScript 模板引擎 1. Mustache 基于javascript 实现的模板引擎,类似于 Microsoft's jQuery template plugin,但更简

JavaScript Web 应用最佳实践分析

[编者按]本文作者为 Mathias Schäfer,旨在回顾在客户端大量使用JavaScript 的最佳 Web应用实践.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 对笔者来说,JavaScript 社区似乎已经陷入了一个时间扭曲隧道.我们现在进行的关于 JavaScript驱动(JavaScript-driven) Web 应用的讨论与2006年"Ajax"出现以及2012年JavaScript"单页应用"流行起来时的讨论如出一辙.只要我们站在巨人

15 个 JavaScript Web UI 库_javascript技巧

几乎所有的富 Web 应用都基于一个或多个 Web UI 库或框架,这些 UI 库与框架极大地简化了开发进程,并带来一致,可靠,以及高度交互性的用户界面.本文介绍了 15 个非常强大的 JavaScript Web UI 库,非常适合各种各种规模的富 Web 应用的开发. LivePipe LivePipe UI 基于 Prototype Javascript 框架,包含了一整套经严格测试并高度可扩展的 UI 控件,拥有很好的文档,在不支持 JavaScript 的环境中,可以无缝降级使用.包括

六个常用的Excel小技巧分享

  六个常用的Excel小技巧分享          1.自动标出不及格分数 假定需用红色字体显示60以下分数,蓝色字体显示60以上分数. Ctrl+1,设置单元格格式→自定义,类型输入框中输入: [蓝色][>=60];[红色][<60] 2.快速输入产品编号 如某类产品型号为"ABC-1245",产品型号均有固定前缀"ABC-",大量录入时,可设置单元格免去固定前缀输入. 按Ctrl+1,设置单元格格式→自定义,类型输入框中输入: "ABC-

总结的5个C#字符串操作方法分享

  这篇文章主要介绍了总结的5个C#字符串操作方法分享,本文讲解了把字符串按照分隔符转换成 List.把字符串转 按照, 分割 换为数据.得到数组列表以逗号分隔的字符串.得到字符串长度等方法,需要的朋友可以参考下 字符串操作是C#中最基本的.最常见的.也是用的最多的,以下我总结了几种常见的方法: 1.把字符串按照分隔符转换成 List ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 /// <summary> ///

B/S模式项目中常用的javascript汇总

 本篇文章是对B/S模式项目中常用的javascript进行了汇总介绍,需要的朋友可以过来参考下,希望对大家有所帮助 屏弊网页的右键 <body oncontextmenu="return false">或<body style="overflow-y:hidden">   为网页加入背景音乐 IE:<bgsound src="*.mid" loop=infinite> NS:<embed src=&qu

jquery下拉select控件操作方法分享

 这篇文章主要介绍了jquery下拉select控件操作方法分享(jquery操作select),需要的朋友可以参考下 JQuery获取和设置Select选项方法汇总如下:   代码:   代码如下: $("#select_id").change(function(){//code...});   //为Select添加事件,当选择其中一项时触发 var checkText=$("#select_id").find("option:selected&quo

一些常用的JavaScript正则表达式

一些常用的JavaScript正则表达式 "^/d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-/d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?/d+$" //整数 "^/d+(/./d+)?$" //非负浮点数(正浮点数 + 0) "^(([

几款常用的javascript电子邮件验证代码

本文章为你提供了几款常用的javascript教程电子邮件验证代码哦,全部都是精简容易理解的js电子邮件验证程序哦,下面来看看这些实例吧. String.prototype.isValidEmail=function() { var result=this.match(/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/); if(result==null) return false; return true; }